【发布时间】:2014-09-27 11:21:16
【问题描述】:
在有人问我十亿次这个问题之前,请注意,我已经在许多线程中尝试了几个答案,但似乎没有一个能正常解决我的问题。
import json
def parse(fn):
results = []
with open(fn) as f:
json_obj = json.loads(open(fn).read())
for r in json_obj["result"]:
print(r["name"])
parse("wine.json")
我基本上只是打开一个 json 文件并对其进行迭代以获得一些值。显然,每当我读取包含一些 unicode 的值时,我都会收到此错误。
Traceback (most recent call last):
File "json_test.py", line 9, in <module>
parse("wine.json")
File "json_test.py", line 7, in parse
print(r["name"])
File "C:\Python34\lib\encodings\cp850.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u201c' in position
15: character maps to <undefined>
正如人们在其他线程中所说,我尝试对其进行编码等等,但无论我如何编码和/或解码它,我都会遇到类似的错误。请帮忙。
【问题讨论】:
-
问题是您正在打印到无法打印字符的 Windows 控制台。在您在屏幕上出现乱码之前,Python 会为您检测到这一点。
-
但是当我将字符
“(即\u201c)粘贴到控制台时,我可以看到它就好了吗? -
看一下
cp850,字符不在。当我尝试将它粘贴到我的系统上时,它会被"替换。 -
我明白了。你会建议我做什么?
-
我已经以答案的形式留下了我的建议。
标签: python json python-3.x unicode