Python 在dict列表中进行编码
我有一个dict的列表Python 在dict列表中进行编码,python,python-2.7,encoding,python-2.x,Python,Python 2.7,Encoding,Python 2.x,我有一个dict的列表mylist,有一个编码问题: >>print mylist [{u'param1': u'foo',u'param2': u'Special char \xe9'}, ...] >>for item in mylist: >> print item {u'param1': u'foo',u'param2': u'Special char \xe9'} ... >>for item in input: >>
mylist
,有一个编码问题:
>>print mylist
[{u'param1': u'foo',u'param2': u'Special char \xe9'}, ...]
>>for item in mylist:
>> print item
{u'param1': u'foo',u'param2': u'Special char \xe9'}
...
>>for item in input:
>> for i in item:
>> print 'Key: %s Value: %s' % (i, item[i])
Key: param1
Value: foo
Key: param2
Value: Special char é
(\xe9
是é
)
如何修改编码以直接使用:
>>print mylist
[{param1: 'foo',param2: 'Special char é'}, ...]
实际上,它已经用正确的方式编码了。但是,如果您
打印
字典,它会调用键和值上的repr(..)
,然后使用转义编码。但是,如果您打印(..)
一个特定值,它将根据您的需要显示它,因为使用了str(..)
。\xe9
仅为方便程序员,您可以轻松复制输出并将其馈送至程序:
$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> mylist = [{u'param1': u'foo',u'param2': u'Special char \xe9'}]
>>> print(mylist[0]['param2'])
Special char é
您不能,因为这只是对列表成员调用
\uuuu repr\uuu
的结果;但更重要的是,您不需要这样做,因为绝对没有理由依赖此输出。