Python Unicode,打印到标准输出,发生了什么?

Python Unicode,打印到标准输出,发生了什么?,python,unicode,Python,Unicode,我无法将数据打印到标准输出。我理解Unicode和Ascii的概念,但我不明白为什么打印指令不起作用 我在玩一个电脑游戏“辐射防护中心”的JSON文件中的数据 当我尝试打印数据时: for i in jsondata["dwellers"]["dwellers"]: print "{},{} {},{}".format(f,i["name"],i["lastName"],i["relations"]) 我得到一个错误: Traceback (most recent cal

我无法将数据打印到标准输出。我理解Unicode和Ascii的概念,但我不明白为什么打印指令不起作用

我在玩一个电脑游戏“辐射防护中心”的JSON文件中的数据

当我尝试打印数据时:

   for i in jsondata["dwellers"]["dwellers"]:
        print "{},{} {},{}".format(f,i["name"],i["lastName"],i["relations"])
我得到一个错误:

Traceback (most recent call last):
  File "f:\FOSScript\Tree.py", line 81, in <module>
    tree()
  File "f:\FOSScript\Tree.py", line 76, in tree
    graphing(jsondata)
  File "f:\FOSScript\Tree.py", line 35, in graphing
    print "{} {}".format(i["name"],i["lastName"])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: ordinal not in range(128)
名称打印正确

以下说明:

print locale.getpreferredencoding()
print sys.stdout.encoding
打印以下内容:

cp1252
cp850
维基百科上检查的两个代码页都包含重音字符

我使用的是加拿大法语版本的Windows10。Python 2.7.13

==========================

为什么从表中打印不起作用,但打印变量起作用

在第页,有一条评论说

Python中唯一支持的默认编码是:

Python2.x:ASCII Python3.x:UTF-8

当他们说ASCII时,他们是指带有重音符号的扩展ASCII,因为JSON数据包含重音符号,python无法打印它吗


谢谢大家!

问题在于,您试图对带有unicode字符的非unicode字符串使用字符串格式。相反,您希望:

for i in jsondata["dwellers"]["dwellers"]:
        print u"{},{} {},{}".format(f,i["name"],i["lastName"],i["relations"])
注意第二行中引号前的额外u

在Python2.7上测试这一点

print u"{}".format(u'\xe9')
很好

print u"{}".format(u'\xe9')