0

我的数据中有字符 \u002d、\u2019、u\2022、\u25ba、\u2013 等。我要做json.loads(data)

我试着做

data1 = data.encode('utf-8')
json.loads(data1)

我仍然收到错误消息。

也尝试了以下但最终出现错误

b1 = data.encode('ascii', 'ignore')
b2 = json.loads(b1)

如果我将数据中的字符替换为'\u002d'到'-',它会起作用,但我不知道其他字符可能会潜入。所以我正在寻找一种对这些字符进行编码的解决方案

4

1 回答 1

2

无需对数据进行编码。

直接喂给json.loads(); _ JSON 标准\u....使用转义码来表示 unicode 值。

这些值未以 UTF-8 编码,Pythonjson模块将为您处理它们。

即使数据UTF-8 编码,该json模块也会为您处理。即使没有,你也会使用str.decode(),而不是编码。

UTF-8 数据看起来也不同;U+2019 代码点如下所示:

>>> u'\u2019'.encode('utf8')
'\xe2\x80\x99'

编码为 UTF-8 时。

于 2013-08-19T07:58:24.733 回答