python爬虫的一个问题,json.loads()不式转化字符串为dict类型吗?

今天在学爬虫的时候,用了一个data=json.loads()方法,但是用data.keys()的时候报错,提示data式一个str类型,我是看网上说json.loads... 今天在学爬虫的时候,用了一个data = json.loads()方法,但是用data.keys()的时候报错,提示data式一个str类型,我是看网上说json.loads是将str转化为dict类型,好像出现了偏差。我又尝试用了一遍data2 = json.loads(data),结果才正确,求大神指教。下面附上这一部分代码和那行网页源码,求大神看看我哪里理解错了还是什么。 展开
 我来答
wodesitanfu
2018-05-30 · TA获得超过2235个赞
知道大有可为答主
回答量:1908
采纳率:80%
帮助的人:889万
展开全部
你看的那个网上解释,不准确的。
json.loads是将json对象转成原生对象。。。也就是说,原来是啥对象,就能给你转出来。只是数据类型,json只支持str类型。如果你原来的对象是dict类型,当然可以用data.keys()方法。但既然错误提示你的事原来的对象是str。。。
发qfuc
2020-03-23
知道答主
回答量:1
采纳率:0%
帮助的人:637
展开全部
我也遇到了相同的问题,我是从本地文件读取出来的json数据格式的数据,然后通过json.load()想转成dict类型的数据,结果我把转完之后的数据当成dict处理的时候也是有相同的报错,后来用eval()再转了一遍,就好了。 但是不知道问题出在哪里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2018-05-29 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7827万
展开全部
换成load方法试试(不要s)
追问

多谢回答,可是不行,出现了新的错误。

追答

先测试下参数类型:

g1 = result.group(1)
print(type(g1))#类型
print(g1)#如果内容不长再输出内容看是什么样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1aea4125e
2018-06-04
知道答主
回答量:29
采纳率:0%
帮助的人:13万
展开全部
我也在学习这个内容,遇到了相同的问题,我想了一下,大概是这样的:
本质上,result.group(1)为一个二重数据字典,在仅仅进行过一次json.loads处理结果仍为一个<class str>的数据,所以要进行两次的json.loads处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式