我正在尝试编写一个带有json文件pizza-train.json的脚本,并从列表中的每个字典中提取request_text字段 . 但是在运行以下代码时出现错误:
Code:
import json
json1_file = open("pizza-train.json", 'r')
json1_str = json1_file.read()
json1_data = json.loads(json1_str)
print(json1_data)
Error:
文件“C:\ Python34 \ lib \ encodings \ cp1252.py”,第19行,编码返回codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError:'charmap'编解码器无法编码位置58765-58767中的字符:字符映射到
我尝试了不同的解决方案,例如: encoding="UTF-8"
.encode('utf-8')
任何人都可以解释我为什么不打印 json1_data ?
1 回答
您的数据有一些字符(位置58765-58767)无法用您的字符集表示(Windows1252) . 您应该将控制台切换到支持它的charset(Windows中的
chcp
命令) .这是一个例子:
我有档案:
文件是UTF8本身,因此Python知道字母“й”是西里尔字母 .
但是我的代码页CP1252没有这样的字母(因为它只有基于拉丁语的字符) .
我现在将我的代码页更改为一个,其中包含字母“й”和其他:
我可以使用866(这也是DOS cyr代码页)