Python JSON确保编码[重复]
Posted
技术标签:
【中文标题】Python JSON确保编码[重复]【英文标题】:Python JSON Ensure Encoding [duplicate] 【发布时间】:2015-03-30 11:31:26 【问题描述】:我创建了一个带有特殊字符作为字符串的 JSON 文件。
我创建例如一个字典
dict[u"Züge"] = ...
json.dump(dict, file)
当我查看转储文件时,它看起来像这样:
"Z\u00fcge": [
有没有办法将编码写入文件,以便任何文本编辑器都会自动显示正确的字符?
然后我得到以下错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in 位置 2:序数不在范围内(128)
【问题讨论】:
是的,但是没有提到如何克服错误:( 【参考方案1】:调用json.dump
时指定ensure_ascii=False
:
json.dump(dict, file, ensure_ascii=False)
【讨论】:
【参考方案2】:你需要在你的json.dump
函数中使用ensure_ascii=False
:
dict[u"Züge"] = ...
json.dump(dict, file,ensure_ascii=False)
Character Encodings in Json:
根据 RFC 的允许(尽管不是必需的),此模块的序列化程序默认设置 ensure_ascii=True,从而对输出进行转义,以便生成的字符串仅包含 ASCII 字符。
【讨论】:
以上是关于Python JSON确保编码[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python 3 与 Javascript escape 传输确保数据正确方法和中文乱码解决方案
使用 pymongo 将自定义 python 对象编码为 BSON