返回数据类型为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'])

 

posted @ 2019-08-16 15:02  小贝书屋  阅读(33264)  评论(0编辑  收藏  举报