返回数据类型为json,提取数据的方法
返回数据中提取数据的方法
比如下面的案例是,取店铺名称
接口返回数据如下:
{"Code":0,"Msg":"ok","Data":{"StoreName":"小贝书屋",
"StoreLogo":"xkdnewyun/systemfile/images/100e478a75754c6f9237cd25e5874ca1.jpg","Contacts":"小贝书屋",
"TelPhone":"18674731640","Introduction":"","IndustryFirstId":"21","IndustryFirst":"亲子",
"IndustrySecondId":"2112","IndustrySecond":"亲子购物","AllProductNum":2,"LatestNum":1},"TraceFlag":null}
取其中“StoreName”值“小贝书屋”的方法和步骤如下
1、首先ipmort json
2、接口返回的数据
r = requests.get(url,data=data,headers= header) #请求url,获得返回的数据信息 text = r.text print(text) #获得的返回数据使用text方法进行获取
3、将响应内容转换为json对象
jsonobj = json.loads(text)#将响应内容转换为Json对象
4、从json对象内取出需要的内容
toCntPercent = jsonobj['Data']['StoreName'] # 从Json对象获取想要的内容
整个过程的代码
打印print(toCntPercent)
打印print(toCntPercent)
如果返回的是一个list数据,则取出数据的方式又有些变化
比如取出下图id
脚本的写法改为:
toCntPercent = jsonobj['Data']['DataList'][0]['Id'] # 从Json对象获取想要的内容
注意id前面的0,代表list里面的第一个id值(list里面可能存在两个id关键字)
或者取多重括号里的数据
listItemId = jsonobj['Data']['DataList'][0]['OrderItem'][0]['Id']
当然,也可以使用正则表达式提取,参考https://www.cnblogs.com/becks/p/14494929.html
另外一种方案:更加简洁,以json格式输出,提取出数据
import requests url = f"https://fabiaoqing.com/jichou/randomrj.html" res = requests.post(url=url).json() a = res['tgrj'] + '\n' print(a)
还有一种情况,返回值如下图
需要提取里面的文字,图中内容返回值在'words_result'中
for item in result['words_result']: print(item['words'])