我有这个代码:
keys_file = open("keys.json")
keys = keys_file.read().encode('utf-8')
keys_json = json.loads(keys)
print(keys_json)
keys.json 中有一些非英文字符。 但结果我得到:
[{'category': 'мбт', 'keys': ['Блендер Philips',
'мультиварка Polaris']}, {'category': 'КБТ', 'keys':
['холод ильник атлант', 'посудомоечная
машина Bosch']}]
我该怎么办?
最佳答案
encode
表示字符到二进制。 读取文件时,您想要的是字符二进制 → 解码
。但实际上整个过程太手动了,只需这样做:
with open('keys.json', encoding='utf-8') as fh:
data = json.load(fh)
print(data)
with
处理文件的正确打开和关闭, open
的 encoding
参数确保使用正确的编码读取文件,并且 load
调用直接从文件句柄读取,而不是先在内存中存储文件内容的副本。
如果这仍然输出无效字符,则意味着您的源编码不是 UTF-8 或您的控制台/终端不处理 UTF-8。
关于python json加载设置编码为utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46408051/