Python 忽略编码参数以支持 cp1252



我有一个很长的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:Python33libjson__init__.py", line 271, in load
    return loads(fp.read(),
  File "C:Python33libencodingscp1252.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 中加载文件?

试试这个:

import codecs
dat = json.load(codecs.open("data.json", "r", "utf-8"))

下面还介绍了有关编解码器库上下文中写入模式的一些提示: 在 Python 中写入 UTF-8 文件

最新更新