【发布时间】:2015-12-27 08:12:47
【问题描述】:
我有一个包含非 ASCII 字符的 json 文件。我正在尝试检索一些具有非 ascii 字符的字段,但我遇到了关键错误。
我试过这个SO question,但没有帮助。我收到了UnicodeEncodeError 错误。
JSON 是:
{"Sh\u012bn\u1e0fan\u1e0f": "1","Shibirgh\u0101n": "2", "Khawr Fakk\u0101n": "3", "Sharjah": "4", "Ras al-Khaimah": "5", "Sang-e Ch\u0101rak": "6"}
我的代码:
my_dict.update({city.encode("utf-8"):id})
fobj = open("my.json",'a',0)
json.dump(m_dict,fobj)
fobj.close()
读取 json:
with io.open('my.json',encoding='utf-8') as data_file:
data = json.loads(data_file.read())
print data[u"Shibirghān".encode("utf-8")]
错误:
KeyError: 'Shibirgh\xc4\x81n
【问题讨论】:
-
你不需要做编码/解码,使用unicode,让json模块处理。
-
非常感谢。我删除了所有编码。现在可以使用了
标签: python json python-2.7