python 自动上报json信息_python接口自动化5-Json数据处理

前言

有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理。

一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的参数就行,这时候就需要json来解析返回的数据了。

一、json模块简介

1.Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式,常用于http请求中

2.可以用help(json),查看对应的源码注释内容

Encoding basic Python object hierarchies::              >>> import json         >>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])         '["foo", {"bar": ["baz", null, 1.0, 2]}]'         >>> print json.dumps("\"foo\bar")         "\"foo\bar"         >>> print json.dumps(u'\u1234')         "\u1234"         >>> print json.dumps('\\')         "\\"         >>> print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)         {"a": 0, "b": 0, "c": 0}         >>> from StringIO import StringIO         >>> io = StringIO()         >>> json.dump(['streaming API'], io)         >>> io.getvalue()         '["streaming API"]'

二、Encode(python->json)

1.首先说下为什么要encode,python里面bool值是True和False,json里面bool值是true和false,并且区分大小写,这就尴尬了,明明都是bool值。

在python里面写的代码,传到json里,肯定识别不了,所以需要把python的代码经过encode后成为json可识别的数据类型。

2.举个简单例子,下图中dict类型经过json.dumps()后变成str,True变成了true,False变成了fasle

3.以下对应关系表是从json模块的源码里面爬出来的.python的数据类,经过encode成json的数据类型,对应的表如下      |  | Python              | JSON          |      |  +===================+===============+      |  | dict                  | object        |      |  +-------------- -----+---------------+      |  | list, tuple          | array         |      |  +-------------------+---------------+      |  | str, unicode      | string        |      |  +-------------------+---------------+      |  | int, long, float  | number        |      |  +-------------------+---------------+      |  | True                | true          |      |  +-------------------+---------------+      |  | False             | false         |      |  +-------------------+---------------+      |  | None              | null          |      |  +-------------------+---------------+

三、decode(json->python)

1.以第三篇的登录成功结果:{"success":true}为例,我们其实最想知道的是success这个字段返回的是True还是False

2.如果以content字节输出,返回的是一个字符串:{"success":true},这样获取后面那个结果就不方便了

3.如果经过json解码后,返回的就是一个字典:{u'success': True},这样获取后面那个结果,就用字典的方式去取值:result2["success"]

4.同样json数据转化成python可识别的数据,对应的表关系如下

|  +---------------+-------------------+      |  | JSON               | Python            |      |  +===============+===================+      |  | object             | dict              |      |  +---------------+-------------------+      |  | array               | list              |      |  +---------------+-------------------+      |  | string              | unicode           |      |  +---------------+-------------------+      |  | number (int)    | int, long         |      |  +---------------+-------------------+      |  | number (real)   | float             |      |  +---------------+-------------------+      |  | true                | True              |      |  +---------------+-------------------+      |  | false               | False             |      |  +---------------+-------------------+      |  | null                 | None              |      |  +---------------+-------------------+

四、案例分析

1.比如打开快递网:http://www.kuaidi.com/,搜索某个单号,判断它的状态是不是已签收

2. 实现代码如下

五、参考代码:

# coding:utf-8 import requests

url = "http://www.kuaidi.com/index-ajaxselectcourierinfo-1202247993797-yunda.html" headers = {             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"            }  # get方法其它加个ser-Agent就可以了

s = requests.session() r = s.get(url, headers=headers,verify=False) result = r.json() data = result["data"]   # 获取data里面内容 print data print data[0]         # 获取data里最上面有个 get_result = data[0]['context']  # 获取已签收状态 print get_result

if u"已签收" in get_result:     print "快递单已签收成功" else:     print "未签收"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse html页面校验,当我在Eclipse浏览器中运行url时,HTML表单未通过验证

尝试这个:function emptyvalidation(field, errorMessage) {if (field.value null || field.value "") {alert(errorMessage);field.focus();return false;} else {return true;}}function validateAndSend() {if (emptyvalidation(nameField,"Ple…

xcode+文字支持html元素,iOS使用UITextview实现富文本编辑

代码使用swift4 Xcode9及以上主要思路是Textview使用NSMutableAttributedString 转化为 html字符 给后台其中图片另外 截取htmlStr里相应的图片标示 组成字典imgs[“标示Str”] “图片Base64” 给后台再编辑时拿到后台的 带图html字符串转为NSMutableAttributedString给Textvi…

安装教程rtx2080ti_点云深度学习环境配置指南(一)Ubuntu16.04+RTX2080ti

【今日导读】想做点云深度学习?先把环境配置好吧。本期为初学者带来环境配置指南,有需求的同学赶快上手吧。配置为:Ubuntu16.04RTX2080tiNVIDIA驱动cuda10.1cudnn7.5。一、安装NVIDIA驱动法一(优先推荐):先添加NVIDIA 的ppa 源&am…

html5响应式网站优势,响应式网站优势有哪些 真的利于排名优化么

今天我们一起来探讨下响应式网站的优势!是否利于排名,因为的确很多朋友在这边进行徘徊,他们 总认为响应式网站并不利于排名,绝对并不正规,其实并不是这样的,下面为大家进行详细的讲解,希望 大家…

二维burgers方程_二维Burgers方程的RKDG有限元解法

二维Burgers方程的RKDG有限元解法∗马艳春1,张寅虎2,冯新龙1【摘要】摘要:本文应用RKDG有限元方法求解具有周期边界条件的二维非粘性Burgers方程,并给出稳定性分析和误差估计.基于一致网格剖分,采用Q1矩形元和广义斜率限制器进行数值模拟&…

计算机管理员相关知识,计算机管理员述职报告范文

计算机管理员述职报告范文计算机管理员述职报告范文尊敬的医院领导:我叫xxx,20xx年7月毕业于西南计算机科学与技术专业。20xx年8月到医院工作,从事网络管理工作已有4年时间,能够胜任本职工作,现将任职以来的主要工作报…

mr图像翻转的原因_MR图像质量与成像参数的相关性及控制对策

MR图像质量与成像参数的相关性及控制对策作者:张晓槟 金宝荣 苏丽娟【关键词】 MR图像摘要:系统研究了MR图像的各种质量指标与各种成像参数的相关性及控制对策。关键词:MR图像质量;成像参数;相关性;控制对…

计算机网络5g,计算机网络参考模型与5G协议

一、分层思想将复杂的流程分解为几个功能相对单一的子过程(1)整个流程更加清晰,复杂问题简单化(2)更容易发现问题并针对性的解决问题二、OSI七层参考模型1984年颁布了开发系统互连(OSI)参考模型;一个开放式体系结构,将网络分为七层分层功能物…

daoi php_使用php生成RSA公钥私钥及进行加密解密和签名验证

这篇文章主要介绍使用PHP开发接口,数据实现RSA加密解密后使用,实例分析了PHP自定义RSA类实现加密与解密的技巧,非常具有实用价值,需要的朋友可以参考下。简单介绍RSA:RSA加密算法是最常用的非对称加密算法,…

html post no js,接受POST请求的Node.js服务器

以下代码显示了如何从HTML表单读取值。正如pimvdb所说,您需要使用request.on(’data’…)来捕获正文的内容。const http require(http)const server http.createServer(function(request, response) {console.dir(request.param)if (request.method POST) {conso…

python excel 数据匹配实现vlookup功能_如何用python实现excel中的vlookup功能?

相信大家都知道excel的vlookup函数,也会运用,这是财务审计工作中经常会用到的函数之一,那用python如何实现这一功能呢?1.目标介绍刀哥想将2017年科目余额表中,应收账款明细的所有客户,以科目编码为索引&…

html 随机出一个地址,nginx random_index 一直指向一个html页面,不会随机

#配置如下#问题:random_index在location /中开启,但是刷新浏览器不会随机,只会一直访问其中一个html文件server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;#root "E:/phpStu…

双百双新产业项目是什么_投资380亿,广西38个“双百双新”产业项目开竣工

广西2020年四季度“双百双新”产业项目集中开竣工活动现场。图片由自治区工信厅提供柳州分会场视频连线。图片由自治区工信厅提供与会嘉宾。图片由自治区工信厅提供广西新闻网南宁12月8日讯(记者 谢琳琳)12月8日,广西举行2020年四季度“双百双新”产业项目集中开竣工…

微型计算机可避免强磁场干扰,微型计算机测控系统抗干扰技术

微型计算机测控系统抗干扰技术从电网干扰、传输线干扰、空间电磁干扰及机内干扰四方面 ,介(本文共2页)阅读全文>>微型计算机测控系统在运行的过程中会受到外部要素的影响,使系统运转失衡。为了避免出...(本文共1页)阅读全文>>微型计算机测控系统中通常存在着很多干…

ssm把后端数据传到前端_前端传数据到后台分别JSON和STRING接收 AJAX SPRINGBOOT ssm

前端时间复习了SSM,前后端传数据接收,做了个例子,分享下POMorg.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-thymeleafcom.alibabafastj…

计算机技术与应用的知识5000字,计算机本科论文范文5000字

近些年来,我国国民经济正在不断地发展,国家日新月异的改变在很大程度上与计算机技术的应用有很大的关系,计算机科学对我国经济发展有着极大的促进作用。下文是学习啦小编为大家搜集整理的关于计算机本科论文范文5000字的内容,欢迎大家阅读参考!计算机本科论文范文50…

整活插件 炉石传说_酒馆战旗整活插件 免安装版

炉石传说酒馆战旗整活插件是一款专门用来帮助玩家跳过炉石传说战斗动画的工具。炉石传说中的战旗模式会在匹配成功后播放一段战斗动画,等到动画播放完毕才会正式进入选牌阶段开始游戏,而很多经常玩战旗模式的玩家早就对其烦不胜烦了。为此有玩家专门开发…

flv 自动播放 html autostart=true,《网页制作之FLV视频播放代码的编写.doc

《网页制作之FLV视频播放代码的编写网页制作之FLV视频播放代码的编写解决方案一:编写成js嵌入网页中 直接copy下面代码,修改其中红色部分,即:swf_width、swf_height、texts、files 参数引用其中:?群英传WEB版宣传视频…

html设置一个随机数的抽奖,随机数的运用---抽奖

首先我们先整理一下思路,看看需要用到些什么。1、随机数2、点击事件3、计时器4、抽完然后把定时器清一下在html中先写一个简单的框架然后我们来敲js//封装一个随机数function randoms(start, end) {return Math.floor(Math.random() * (end - start 1) start);};v…

妖帝q群机器人_有关酷Q 晨风机器人,契约 qqlite qqlight ,mypc等QQ机器人关停一事的一点想法...

估计有不少朋友都使用过QQ机器人,因为很多网友每天都要管理很多个QQ交流群,如果一个人管理,估计都得累死,所以一般都会使用QQ机器人来帮助自己管理。只是腾讯自身的QQ机器人实在不给力,功能太鸡肋,而且不支…