为什么字符串在列表中以不同方式显示在python中?

时间:2014-03-15 03:08:32

标签: python string encoding

我正在抓取一个网页,我得到的是我猜的是一个utf-8文本。所以,会发生以下情况:

# -*- coding: utf-8 -*-
import urllib2
import json

url = '....'
data = json.load(urllib2.urlopen(url))
a = u'\u0391\u0391\u039b\u0395\u039d'
print a
ΑΑΛΕΝ
print [a]
[u'\u0391\u0391\u039b\u0395\u039d']

为什么第二次没有显示为第一次的任何想法?

1 个答案:

答案 0 :(得分:3)

print隐式地对参数进行str调用,但str对所有内部元素进行列表调用repr。 e.g:

>>> class Foo(object):
...     def __str__(self):
...         return 'world'
...     def __repr__(self):
...         return 'hello'
... 
>>> f = Foo()
>>> print repr(f)
hello
>>> print f
world
>>> print [f]
[hello]