2

例として、Linux Python 2.7.3 では、Unicode の文字 é (LATIN SMALL LETTER E WITH ACUTE) が辞書にあり、é として表示しようとしています。

>>> 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'

ドキュメントといくつかの同様の質問から回答を検索した後、回答が見つかりませんでした。これを適切に行う方法の例を挙げて、誰かが明確な説明をしてくれれば幸いです。

4

3 に答える 3

2

それらが入っている辞書やリストではなく、実際に値を印刷しようとする必要があります。

例えば:

>>> mydict = {'mykey':u'é'}
>>> for value in mydict.values(): 
...   print value
... 
é
于 2013-09-30T14:28:38.867 に答える
0

Python では、 adictを出力すると、そのキー/値reprではなく、そのキー/値が出力されますstr。必要な方法で印刷するには、このスニペットを使用します。

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

Obs .: Python 2 では、Unicode 文字列reprは引用符で囲まれていますが、strそうではありません。不要な場合は単一引用符を削除してください。

于 2013-09-30T14:35:16.480 に答える