设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 7124|回复: 6
打印 上一主题 下一主题

解析Json文本时Json.load()一直报错,说传入文本字符不对

[复制链接]

1

主题

0

好友

17

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2018-3-11 16:28:24 |只看该作者 |正序浏览
本帖最后由 自学当程序员 于 2018-3-11 17:08 编辑

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

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

使用道具 举报

0

主题

0

好友

137

积分

注册会员

Rank: 2

7#
发表于 2018-3-20 09:31:07 |只看该作者
自学当程序员 发表于 2018-3-20 08:07
谢谢

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

使用道具 举报

1

主题

0

好友

17

积分

新手上路

Rank: 1

6#
发表于 2018-3-20 08:07:35 |只看该作者
zhaolehua 发表于 2018-3-19 11:43
pattern = re.compile('gallery: JSON.parse\((.*?)\),\n',re.S)
result = re.search(pattern,html)
if res ...

谢谢
回复

使用道具 举报

0

主题

0

好友

137

积分

注册会员

Rank: 2

5#
发表于 2018-3-19 11:43:34 |只看该作者
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转换为字典
拿过去运行一下。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2018-3-16 17:34:49 |只看该作者
自学当程序员 发表于 2018-3-16 17:02
应该是吧,不然为什么我把网页源码down下来就能解析出来dict格式,requests抓下来就报错,要么就是字符串 ...

不是应不应该。。。过程中的数值输出出来确认,定位问题。调试不是靠猜的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

17

积分

新手上路

Rank: 1

板凳
发表于 2018-3-16 17:02:27 |只看该作者
应该是吧,不然为什么我把网页源码down下来就能解析出来dict格式,requests抓下来就报错,要么就是字符串
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2018-3-12 16:45:34 |只看该作者
确认你拿到的网页数据是不是标准json格式
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-22 05:56 , Processed in 0.017679 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部