Crossin的编程教室

标题: 解析Json文本时Json.load()一直报错,说传入文本字符不对 [打印本页]

作者: 自学当程序员    时间: 2018-3-11 16:28
标题: 解析Json文本时Json.load()一直报错,说传入文本字符不对
本帖最后由 自学当程序员 于 2018-3-11 17:08 编辑

把网页源代码复制下来可以传入 json.loads 并且可以正确解析
但是网页上解析出来的网页源码传进来就报错,为这个问题郁闷了一整天

本地文本解析时,正则里面包含双引号可以正确解析,不包含双引号就报错
网页文本解析时,正则里面不包含双引号可以传入loads方法,但返回结果时str字符串,包含双引号时报错。
求大神解答
网页解析报错 复制来的源码解析没问题

作者: crossin先生    时间: 2018-3-12 16:45
确认你拿到的网页数据是不是标准json格式
作者: 自学当程序员    时间: 2018-3-16 17:02
应该是吧,不然为什么我把网页源码down下来就能解析出来dict格式,requests抓下来就报错,要么就是字符串
作者: crossin先生    时间: 2018-3-16 17:34
自学当程序员 发表于 2018-3-16 17:02
应该是吧,不然为什么我把网页源码down下来就能解析出来dict格式,requests抓下来就报错,要么就是字符串 ...

不是应不应该。。。过程中的数值输出出来确认,定位问题。调试不是靠猜的
作者: zhaolehua    时间: 2018-3-19 11:43
pattern = re.compile('gallery: JSON.parse\((.*?)\),\n',re.S)
result = re.search(pattern,html)
if result:
    data = json.loads(result.group(1)) #这个拿到的是str
    data = eval(data) #这个把str转换为字典
拿过去运行一下。
作者: 自学当程序员    时间: 2018-3-20 08:07
zhaolehua 发表于 2018-3-19 11:43
pattern = re.compile('gallery: JSON.parse\((.*?)\),\n',re.S)
result = re.search(pattern,html)
if res ...

谢谢
作者: zhaolehua    时间: 2018-3-20 09:31
自学当程序员 发表于 2018-3-20 08:07
谢谢

动态语言多多注意数据类型




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5