Python将JSON文件保存为UTF-8

25

我正在尝试将一些UTF-8字符输出到JSON文件。

当我保存该文件时,它们被写成这样:

{"some_key": "Enviar invitaci\u00f3n privada"}

上述内容是有效的并且可用。当我加载文件并在终端中打印“some_key”时,它会显示为“Enviar invitación privada”。

有没有办法将JSON文件中的“some_key”以编码版本的形式写入,就像这样?

{"some_key": "Enviar invitación privada"}


完整的答案(包括Python 2版本)可以在此处找到:https://dev59.com/u2Ml5IYBdhLWcg3wgnSl。 - renadeen
2个回答

46

我这里使用的是Python 3.4.3,并且使用dump()而不是dumps()

    with open("example.json","w", encoding='utf-8') as jsonfile:
        json.dump(data,jsonfile,ensure_ascii=False)

将 JSON 写入 UTF-8 编码的文件是标准方式。

如果想要在文件中输出转义后的字符编码而非字符本身,请设置 ensure_ascii=True。例如,这会直接将欧元符号写为 \u20ac 到您的文件。


32

ensure_ascii设置为False

>>> print json.dumps(x, ensure_ascii=False)
{"some_key": "Enviar invitación privada"}

我仍然得到像Ã而不是àè而不是è这样的字符,有什么建议吗? - Waiyl Karim
2
这不会将数据保存到文件中! - handras

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接