python json加载设置编码为utf-8

标签 python python-3.x

我有这个代码:

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 处理文件的正确打开和关闭, openencoding 参数确保使用正确的编码读取文件,并且 load 调用直接从文件句柄读取,而不是先在内存中存储文件内容的副本。

如果这仍然输出无效字符,则意味着您的源编码不是 UTF-8 或您的控制台/终端不处理 UTF-8。

关于python json加载设置编码为utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46408051/

相关文章:

python - 如何使用python在另一个图像中查找图像

用于刷新光标实例的 Python 装饰器

python - 导入错误:无法导入名称 sqlContext

python - 如何以特定方式格式化 float ?

python - Django 第 3 方身份验证系统

python - PyFPDF、HTMLMixin、Python 无法打印 HTML

python - 子列表的唯一元素取决于子列表中的特定值

python - 无法截取宽度为 0 的屏幕截图

python - 检查字符串的 SHA1

python-3.x - PyTorch CUDA 与 Numpy 的算术运算?最快的?