json dict - python如何访问

时间:2015-01-07 13:23:30

标签: python json dictionary

我知道,这可能很容易,但我被卡住了......这是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 ...

3 个答案:

答案 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