【发布时间】:2018-06-12 20:40:04
【问题描述】:
我正在抓取一个网站,它有这个 JSON 数据作为回报。
https://pastebin.com/R50eTqrD 这是print( repr( string ) ) 的输出
https://pastebin.com/VH6JrDMG这是print( string )的输出
我在做
resp = json.loads(resp)
但它给了我这个错误
ValueError: Invalid \escape: line 1 column 170 (char 169)
我找到了一个解决方案here,它建议我这样做
resp = json.loads(HTMLParser().unescape(resp.decode('unicode-escape')))
但它现在抛出这个错误
UnicodeEncodeError: 'ascii' codec can't encode characters in position 51-59: ordinal not in range(128)
我已经尝试了几种解决方案,例如
json.loads(HTMLParser().unescape(resp.decode('unicode-escape')).encode("utf-8"))
还有更多,但没有一个对我有用。
【问题讨论】:
-
@user2864740 好的,感谢您的指出,但无效的 json 错误应该有所不同...我的主要目标是解决此错误
ValueError: Invalid \escape:...知道该怎么做 -
来自服务器的 raw JSON 是什么? (即,根据浏览器网络捕获?)
-
@user2864740
Tomáš Linhart的回答对我有用 -
这个问题肯定没有minimal reproducible example。
标签: python python-2.7 scrapy