如何在JSON中编码西里尔字符

时间:2016-10-15 01:50:53

标签: python-3.x unicode utf-8

我想阅读包含西里尔符号的JSON文件。

西里尔符号表示为\u123

Python将它们转换为'\\u123'而不是西里尔符号。

例如,字符串"\u0420\u0435\u0433\u0438\u043e\u043d"应该变为"Регион",但变为"\\u0420\\u0435\\u0433\\u0438\\u043e\\u043d"

encode()只是使字符串看起来像u"..."或添加新的\

如何将"\u0420\u0435\u0433\u0438\u043e\u043d"转换为"Регион"

2 个答案:

答案 0 :(得分:2)

如果您希望json输出其中包含非ASCII字符的字符串,则需要传递ensure_ascii=False,然后再手动编码。

答案 1 :(得分:0)

只需使用json模块。

import json

s = "\u0420\u0435\u0433\u0438\u043e\u043d"

# Generate a json file.
with open('test.json','w',encoding='ascii') as f:
    json.dump(s,f)

# Reading it directly
with open('test.json') as f:
    print(f.read())

# Reading with the json module
with open('test.json',encoding='ascii') as f:
    data = json.load(f)
print(data)

输出:

"\u0420\u0435\u0433\u0438\u043e\u043d"
Регион