python中resp.json()与json.loads(str)的区别

resp=resquests.get(url)
print(type(resp)) #<class 'requests.models.Response'>

第一行代码使用requests库发送get请求,得到响应数据resp。

第二行代码的输出结果可以得到响应回来的数据resp是Response对象。

现在讲一下resp.json()与json.loads(str)的区别:

(1)resp.json()

json_data=resp.json()

print(type(json_data)) #<class 'dict'>

json_data=resp.json()可以将爬虫程序响应回来的Response对象数据不做其他处理直接转化成json数据,得到的json_data是字典dict类型的数据。

(2)json.loads(str)

str_resp=resp.text

#此次为本文未作说明代码

json_data=json.loads(str_resp)

print(type(json_data)) #<class 'dict'>
str_resp=resp.text将响应回来的Response对象resp通过.text方法转化成字符串类型。再用字符串的处理方法得到字符串str(本文不做说明)。最后再利用json_data=json.loads(str)得到字典dict类型的数据json_data。

总结:

resp.json()的作用对象是requests.get()响应回来的Response对象;

json.loads(str)的作用对象是字符串str。

当requests.get()响应回来的Response对象不能直接通过(1)转化为所需的json字典类型数据,可能是响应数据需要经过处理才能转化为json数据,此时可以考虑使用(2)方法得到数据。
————————————————
原文链接:https://blog.csdn.net/nice_name_get/article/details/119445240

posted @ 2022-12-28 15:06  星钥无痕  阅读(565)  评论(0编辑  收藏  举报