我想阅读包含西里尔符号的JSON文件。
西里尔符号表示为\u123
。
Python将它们转换为'\\u123'
而不是西里尔符号。
例如,字符串"\u0420\u0435\u0433\u0438\u043e\u043d"
应该变为"Регион"
,但变为"\\u0420\\u0435\\u0433\\u0438\\u043e\\u043d"
。
encode()
只是使字符串看起来像u"..."
或添加新的\
。
如何将"\u0420\u0435\u0433\u0438\u043e\u043d"
转换为"Регион"
?
答案 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"
Регион