我知道,这可能很容易,但我被卡住了......这是data
{ u'job_27301': [{u'auto_approve': u'0',
u'body_src': u'some text1'}],
u'job_27302': [{u'auto_approve': u'0',
u'body_src': u'some text2'}],
u'job_27303': [{u'auto_approve': u'0',
u'body_src': u'some text3'}] }
我有这个列表字典。
如何在每个步骤中循环并从值列表中获取body_src
?我试过了
for k, d in data:
print d[k]
获取列表部分,但它是说too many values to unpack
...
答案 0 :(得分:2)
d={ u'job_27301': [{u'auto_approve': u'0',
u'body_src': u'some text1'}],
u'job_27302': [{u'auto_approve': u'0',
u'body_src': u'some text2'}],
u'job_27303': [{u'auto_approve': u'0',
u'body_src': u'some text3'}] }
for k,v in d.iteritems(): # items in python 3
print(v[0]["body_src"])
或只是值:
for v in d.itervalues(): # values in python 3
print(v[0]["body_src"])
答案 1 :(得分:2)
您收到该错误消息,因为当您直接在dict
上进行迭代时,您只能获得密钥。
所以你可以这样做:
for k in data:
print data[k][0]['body_src']
<强>输出强>
some text1
some text3
some text2
答案 2 :(得分:1)
为了迭代字母(key,item)
,您可以使用data.items()
或iteritems()
:
>>> for k,d in data.iteritems():
... print d[0][u'body_src']
...
some text1
some text3
some text2
执行for k,d in data:
时,您只尝试迭代密钥:
>>> for i in data:
... print i
...
job_27301
job_27303
job_27302