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 传输确保数据正确方法和中文乱码解决方案

如何 JSON 序列化集合?

使用 pymongo 将自定义 python 对象编码为 BSON

为啥当我输入整数时它显示为不是整数? (Python)[重复]

Python -- Json 数据编码及解析

Python之json编码