python接口自动化-Json数据处理

前言
有些post的请求参数是json格式的 , 这个前面第二篇post请求里面提到过 , 需要导入json模块处理 。
一般常见的接口返回数据也是json格式的 , 我们在做判断时候 , 往往只需要提取其中几个关键的参数就行 , 这时候就需要json来解析返回的数据了 。
一、json模块简介1.Json简介:Json , 全名JavaScriptObjectNotation , 是一种轻量级的数据交换格式,常用于http请求中
2.可以用help(json),查看对应的源码注释内容
EncodingbasicPythonobjecthierarchies::>>>importjson>>>json.dumps(['foo',{'bar':('baz',None,1.0,2)}])'["foo",{"bar":["baz",null,1.0,2]}]'>>>printjson.dumps(""foobar")""foobar">>>printjson.dumps(u'u1234')"u1234">>>printjson.dumps('')"">>>printjson.dumps({"c":0,"b":0,"a":0},sort_keys=True){"a":0,"b":0,"c":0}>>>fromStringIOimportStringIO>>>io=StringIO()>>>json.dump(['streamingAPI'],io)>>>io.getvalue()'["streamingAPI"]'
二、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
三、decode(json->python)
1.以接口返回成功结果:{'status':'success','msg':'接口连接成功!'}为例 , 我们其实最想知道的是success这个字段返回的是True还是False
2.如果以content字节输出 , 返回的是一个字节序列 , 这样获取后面那个结果就不方便了
3.如果经过json解码后 , 返回的就是一个字典 , 这样获取后面那个结果 , 就用字典的方式去取值
|+---------------+-------------------+||JSON|Python||+===============+===================+||object|dict||+---------------+-------------------+||array|list||+---------------+-------------------+||string|unicode||+---------------+-------------------+||number(int)|int,long||+---------------+-------------------+||number(real)|float||+---------------+-------------------+||true|True||+---------------+-------------------+||false|False||+---------------+-------------------+||null|None||+---------------+-------------------+
四、案例分析
1.比如打开快递网: , 搜索某个单号 , 判断它的状态是不是已签收
#coding:utf-8importrequestsimportrequests
url="index-ajaxselectcourierinfo-1202247993797-yunda.html"
【python接口自动化-Json数据处理】headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64;rv:44.0)Gecko/20100101Firefox/44.0


    推荐阅读