如何显示Unicode字典值

2024-09-26 22:51:15 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,在Linux Python 2.7.3中,我在字典中使用了unicoded characteré(带锐音符的拉丁文小写字母E),并尝试将其显示为:

>>> mydict = {'mykey':u'é'}
>>> mydict.values()
[u'\xe9']
>>> mydict['mykey']
u'\xe9'
>>> str(mydict.values())
"[u'\\xe9']
>>> print mydict.values()
[u'\xe9']

事实上,当值被utf-8编码时,我也面临同样的挑战:

>>> cdict ={'key2':'é'}
>>> cdict
{'key2': '\xc3\xa9'}
>>> print cdict.values()
['\xc3\xa9']
>>> cdict['key2']
'\xc3\xa9'

在从文档和几个类似的问题中搜索答案之后,我还没有找到答案。如果有人能给我一个明确的解释,并举例说明如何正确地做到这一点,我将不胜感激。你知道吗


Tags: 答案字典linuxmydict音符valuesprintkey2
3条回答

在Python中,打印dict将打印其键/值repr,而不是它们的str。要按所需方式打印此代码段,请执行以下操作:

print "{%s}" % ", ".join("%s: '%s'" % pair for pair in mydict.items())

Obs.:在python2中,unicode字符串repr被引号包围,但它们的str不是,如果不需要,请删除单引号。你知道吗

解释器输出对象的字符串表示。如另一个答案所述,如果您打印值,您将正确显示字符。你知道吗

否则,您必须自己构建字符串:

>>> mydict = {'mykey':u'é', 'myotherkey': 'x'}
>>> print '\n'.join(u"{}: {}".format(*pair) for pair in mydict.items())
mykey: é
myotherkey: x

您必须实际尝试打印值,而不是它们所在的dict或list。你知道吗

例如:

>>> mydict = {'mykey':u'é'}
>>> for value in mydict.values(): 
...   print value
... 
é

相关问题 更多 >

    热门问题