小白求教:response.json()的用法疑问

青松100 2020-08-02 08:46:02
我看了一篇关于response.json()用法的博文,和有几个大神告诉我,这个方法是把 json()格式的数据 转为 字典。

这些代码是爬取 肯德基 门店的信息。但是我看到本URL地址--response的类型是text/plain. (见截图1,截图2)

我学了解到的response.json()如果返回的对象不是json()格式,就会报错。但是这些代码都能正常执行,为什么?

以下代码是出自某博客-阿良。(引用的目的,防止侵权)


import requests
import json

url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'

}
city = input('enter a city name:')
#for page in range(8):
data = {
'cname': '',
'pid': '',
'keyword': 'city',
'pageIndex': '1',
'pageSize': '10',
}
#参数动态化使用的是data参数
data_dict = requests.post(url=url,headers=headers,data=data).json.()
for item in data_dict['Table1']:
if not item:
pass
print(item['storeName'], item['addressDetail'])






...全文
9469 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

感谢热心人的解析,明白了。

xianxian2035 2021-04-17
  • 打赏
  • 举报
回复 1
非常感谢楼主问出了这个问题,同时也感谢大佬细腻的回答! 今天看爬虫视频也是看到了爬取KFC这一段,写代码的时候一直卡在了response.text()这里,我就想为什么返回的是text类型而不使用这个函数,导致运行程序的时候一直报错(TypeError:'str' object is not callable),然后实在是没办法,就看了其他同学运行成功的代码!看了之后还是想不通为什么要使用response.json()! 皇天不负有心人,终于在这里找到了这个问题!选择终于弄明白了,再次谢谢大佬和楼主!!!
青松100 2020-08-09
  • 打赏
  • 举报
回复 2
引用 1 楼 考古学家lx 的回复:
response.json() 是把返回响应的json字符串转换成字典。 response.json() 等同于 json.loads(response.text) text/plain是无格式正文,意思是将文件设置为纯文本的形式。跟接口返回什么类型的数据并没有直接的关系。
我在别的论坛也问,也跟原博主请教了,到目前为止,没有人解答我这个问题。我以为没有人会理我了,加上最近身体不好,所以没有来这里,采纳晚,请见谅。 没有想到您回答我了,在这里,小白万分感谢。另外多追加20分做为难度分,新人手上也没有多少分,希望不要见怪。
  • 打赏
  • 举报
回复 6
response.json() 是把返回响应的json字符串转换成字典。 response.json() 等同于 json.loads(response.text) text/plain是无格式正文,意思是将文件设置为纯文本的形式。跟接口返回什么类型的数据并没有直接的关系。
NB m 2023-02-25
  • 举报
回复
@考古学家lx(李玺) 你讲的是不是错误的? 这个返回的是不是不单单是字典 还可以是list?
  • 举报
回复 1
@NB m http/https响应体中返回的数据不是字典也不是list,常见的Content-Type格式有html、xml、image、json、octet-stream等等。所以返回内容即便看起来和map或list一样,也大都属于上述格式的一种,需要二次处理。

37,745

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧