ValueError:执行json.loads()时出现无效\ escape:错误

时间:2018-01-03 07:17:42

标签: python python-2.7 scrapy

我正在抓取一个网站,它有这个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"))

还有更多,但没有一个适合我。

1 个答案:

答案 0 :(得分:3)

字符串中的\x3E个字符存在问题。如果s包含字符串,请尝试以下操作:

json.loads(s.replace(r'\x3E', '\x3E'))