我正在使用googleappengine和python2.7完成一个学校项目。我试图输出一个嵌套的字典,比如:{city:[{song1:artist1},{song2:artist2}], city2:[{song1:artist1},{song2:artist2}]}
。然而,城市名称和歌曲来自世界各地,有着特殊的外国字符。当我打印字典时,我得到了这个字符串:
{'uOsaka'[{'u\u3086\u3081\u3044\u3089\u3093\u304b\u306d': u'Takajin Yashiki}
等。。。(大阪是城市,unicode是歌曲,Takajin是艺术家)
有人知道如何正确显示城市/歌曲的名称吗?在
与How to print national characters in list representation?中一样,您需要使用自定义过程来打印数据,该过程将打印字符串本身而不是其
repr
:(在文件的开头使用
from __future__ import unicode_literals
,以避免在每个文本之前放置u
)您不必限制模仿Python的默认输出格式,您可以以任何方式打印它们。在
或者,您可以为字符串使用
^{pr2}$unicode
子类,该字符串将具有repr
和国家字符:这是有问题的'cuz}s in random places 。它还将打印mojibakeif a specific output channel's encoding is different from ^{} or if further transcoding is involved.
repr
输出被假定只包含ASCII字符,各种代码依赖于此。You are extremily likely to get ^{Python2.7中的基本问题是打印字典涉及到将其转换为字符串,而该字符串将是
str
,而不是unicode
。因此你的输出。在但是,当渲染单个项目时,您会发现它们很好:
请注意,这是Python2的行为。在python3中,
^{pr2}$str
是文本,该数据将被打印为UTF-8,并且应该在控制台中自然呈现,假设您为日语glyph安装了必要的字体:相关问题 更多 >
编程相关推荐