python列表读取编码的问题 30
如图,我的response是用python调用接口返回的结果,现在有以下几个问题1。这个结果是什么编码?2.我将结果中的一个包含中文的字段组成了列表K后,打印K中的一个值...
如图,我的response是用python调用接口返回的结果,现在有以下几个问题
1。这个结果是什么编码?
2.我将结果中的一个包含中文的字段组成了列表K后,打印K中的一个值能正确显示,但我直接 print k却显示为第二行中的那个unicode了,这是为什么?
3.直接str(list)也是显示的像第二行中的编码一样,原因是什么? 展开
1。这个结果是什么编码?
2.我将结果中的一个包含中文的字段组成了列表K后,打印K中的一个值能正确显示,但我直接 print k却显示为第二行中的那个unicode了,这是为什么?
3.直接str(list)也是显示的像第二行中的编码一样,原因是什么? 展开
2个回答
展开全部
这个结果不是什么编码,而是 list 的表示形式
1. 对于一个不是 str 的 obj, print obj 等价于 print str(obj)
2. str(obj) 的等价形式是 obj.__str__()
3. 对于 list 类型, __str__ 的定义是 '[%s]' % ', '.join(repr(i) for i in self)
(每个元素的 repr 值拼接起来)
4. 对于 unicode 对象, repr 形式为
print repr(u'中文')
>> u'\u4e2d\u6587'
所以
array = [u'中文', u'中文', u'中文']
print array
>> [u'\u4e2d\u6587', u'\u4e2d\u6587', u'\u4e2d\u6587']
print '[%s]' % ', '.join(repr(i) for i in array)
>> [u'\u4e2d\u6587', u'\u4e2d\u6587', u'\u4e2d\u6587']
而
print u'中文'
>> 中文
print str(u'中文')
>> 中文
array = [u'中文', u'中文', u'中文']
print '[%s]' % ', '.join(array)
>> [中文, 中文, 中文]
追问
像这种b本来是字典中一个键值,我在用A=str(list)后用b in a去判断A,为什么会为false呢?
追答
不是很清楚你说的过程,你是说这样么?
d = {'a':[1,2,3], 'b':[2,3,4]}
lst = d['a']
print str(lst) in d
>> False
或者是这样?
array = [u'中文', u'中文', u'中文']
print array[0] in str(array)
>> False
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询