python json加载集编码为utf-8

2024-03-29 14:39:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个密码:

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']}]

我该怎么办?


Tags: json密码readopenkeys字符utfencode
1条回答
网友
1楼 · 发布于 2024-03-29 14:39:20

encode表示将字符转换为二进制。当读取文件时,需要的是二进制到字符decode。但实际上这整个过程太手工了,只要这样做:

with open('keys.json', encoding='utf-8') as fh:
    data = json.load(fh)

print(data)

with处理文件的正确打开和关闭,openencoding参数确保使用正确的编码读取文件,load调用直接从文件句柄读取,而不是先将文件内容的副本存储在内存中。

如果仍然输出无效字符,则表示源代码不是UTF-8,或者控制台/终端不处理UTF-8。

相关问题 更多 >