我有一个冗长的json文件,其中包含utf-8个字符(并以utf-8编码)。我想使用内置的json模块在python中读取它。
我的代码如下所示:
dat = json.load(open("data.json"), "utf-8")
虽然我理解“utf-8”参数应该是不必要的,因为它被认为是默认值。但是,我收到了这个错误:
Traceback (most recent call last):
File "winratio.py", line 9, in <module>
dat = json.load(open("data.json"), "utf-8")
File "C:\Python33\lib\json\__init__.py", line 271, in load
return loads(fp.read(),
File "C:\Python33\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 28519: ch
aracter maps to <undefined>
我的问题是:为什么python似乎忽略了我的编码规范并尝试在cp1252中加载文件?
答案 0 :(得分:0)
试试这个:
import codecs
dat = json.load(codecs.open("data.json", "r", "utf-8"))
此处还介绍了有关编解码器库中写入模式的一些提示:Write to UTF-8 file in Python