我正在处理从API中获得的一些JSON数据。但是,当我试图使用python解析器解析它时,带有空格的引号中的结果值会被错误地解析。
例如:
从api的response.text中,我得到以下部分:“value”:“4685”,解析后它变成'value':'4\xa0685‘
我知道我可以手动删除\xa0并得到结果,但这似乎是一个奇怪的解决方案。
守则:
response = requests.get(url)
data = json.loads(response.text)
有人知道这是怎么回事吗?
发布于 2020-05-04 13:34:31
在我看来,这似乎是编码的一个问题。
来自请求模块文档
当您发出请求时,请求会根据headers对响应的编码进行合理的猜测。访问r.text时使用请求猜测的文本编码。您可以使用r.encoding属性了解正在使用的编码请求,并对其进行更改。
您能检查标题以检查设置了哪些字符集并使用encode()
转换为正确的编码吗?
或者,在转换为JSON之前,可以将响应的编码更改为'utf-8‘。
response = requests.get(url)
response.encoding = 'utf-8'
data = json.loads(response.text)
参考资料:https://requests.readthedocs.io/en/master/user/quickstart/#response-content
发布于 2020-05-04 06:58:47
4 685
不是一个正确格式化的数字,解析器不能将它读取为整数。
https://stackoverflow.com/questions/61595098
复制相似问题