python - 如何解决 Python Unicode 编码错误?
问题描述
我试图加载一个 .json 文件。这个文件是一个英文字典,包含很多像 \u266f 这样的 Unicode。通过使用encoding = "utf8"
不能解决错误。然后我用 UTF-8 替换了所有的 Unicode;但是,它仍然显示相同的错误。
我的代码:
import json
data = json.load(open("data.json", encoding="utf8"))
print(data)
结果:
Traceback (most recent call last):
File "E:\Python\Dictionary App\test.py", line 4, in <module>
print(data)
File "C:\Users\ahnaf\AppData\Local\Programs\Python\Python38-32\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u266f' in position 657370: character maps to <undefined>
[Finished in 0.32s]
json 文件:data.json
解决方案
尝试包括:
# -*- coding: utf-8 -*-
或者
# coding: utf-8
在你的 python 文件头中。
示例:
# coding: utf-8
import json
with open("data.json") as f:
data = json.loads(f.read())
print(data)
推荐阅读
- matrix-synapse - 将 Intranet 中的 Matrix Synapse 服务器与 Internet 中的服务器桥接/克隆
- google-chrome - 如何在 VueJS 中使用 chrome 断点调试工具?
- java - 为什么我的 ArrayList 项目在消失时不会自行移除?
- asp.net - asp.net 用户成功登录后未通过身份验证并重定向到主页
- python - Flask 无法从目录中检索随机图片
- selenium - 例外:NoSuchElement 没有这样的元素
- angular - Angular Recursive HTTP Request 导致无限循环
- sql-server - 一列的输出只有两个十进制数字?
- python - Neo4j 密码查询以删除特定节点的子节点和孙节点
- postgresql - docker kong 错误获取与 postgres 的连接