阻碍 Python 将 JSON 数据转换为转义的特殊字符时出现 Python UnicodeDecodeError [重复]

Posted

技术标签:

【中文标题】阻碍 Python 将 JSON 数据转换为转义的特殊字符时出现 Python UnicodeDecodeError [重复]【英文标题】:Python UnicodeDecodeError when hindering Python to convert JSON data to escaped special characters [duplicate] 【发布时间】:2014-12-08 05:41:59 【问题描述】:

这是我的 Python 代码:

json_data = 
    "data":"ä"  


print (json_data)
# "data":"\xe4"

jsonified = json.dumps(json_data)
print (jsonified)
# same as above, "data":"\xe4"

如何阻止 Python 或告诉 Json Dumps Method 不要更改我的特殊字符?

更新:应用以下建议后,我得到:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 52: ordinal not in range(128)

【问题讨论】:

无论如何都会将我的所有内容移出 SO。复制?可笑。 【参考方案1】:

你需要使用ensure_ascii=False 然后encode('utf8')

jsonified = json.dumps(json_data,ensure_ascii=False ).encode('utf8')
print jsonified

【讨论】:

什么?我不明白 阅读此处docs.python.org/2/library/json.html#basic-usage 谢谢!现在我得到了这个:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 52: ordinal not in range(128)

以上是关于阻碍 Python 将 JSON 数据转换为转义的特殊字符时出现 Python UnicodeDecodeError [重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Alamofire 4.4.0 将 JSON 字符串转换为转义的 JSON 字符串(Swift 3)?

将 Ruby 哈希转换为 JSON(不带转义字符)

使用 VB Script RegExp 对象将 '\uA90F' 形式的 JSON Unicode 转义序列转换为 XML 字符引用

将 Python 转义的 unicode 序列转换为 UTF-8

Python 2.7:如何将字符串中的 unicode 转义转换为实际的 utf-8 字符

将输入十六进制 0A 转换为 \n 转义字符