循环遍历python中的dict元素

时间:2016-07-25 16:11:22

标签: python

我有一块json,它使用json函数转换为dict。 由此:

{
    "imageIds": [
        {
            "imageTag": "1.2",
            "imageDigest": "sha256:8b67b1691b29e27a5ccbd6fea5c97c951a025ccd45b26d4c24567ca3c4c0f13b"
        },
        {
            "imageTag": "1.0",
            "imageDigest": "sha256:aa52a12bd6e516659452af5b9ed0fad8659f9e0cea6a986c6bfe02af388df189"
        }
    ]
}

对此:

>>> print data
{u'imageIds': [{u'imageTag': u'1.2', u'imageDigest': u'sha256:8b67b1691b29e27a5ccbd6fea5c97c951a025ccd45b26d4c24567ca3c4c0f13b'}, {u'imageTag': u'1.0', u'imageDigest': u'sha256:aa52a12bd6e516659452af5b9ed0fad8659f9e0cea6a986c6bfe02af388df189'}]}

在此示例中,键的数量(imageIds)是固定的,但imageIds下可能有任意数量的imageTag。

我想要做的是循环使用' imageTag'元素读取标签号并执行操作。如果我想循环键,它似乎很简单,例如:

for key in data:
    print key, 'corresponds to', data[key]

但是,我不确定如何循环键下的项目。 我想要实现的是打印出来:

1.2
1.0

1 个答案:

答案 0 :(得分:0)

对内部dict进行迭代,就像对待外部for key, value in data.iteritems(): #now value can be a dictionary as well #for innerkey, innervalues in value[0].iteritems(): # print innerkey, innervalues #in order to only print the elements that have imageTag as the key, simply do: print value[0]['imageTag'] 一样:

SGVsbG8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tLyBhbmQgdGhhbmsgeW91IGZvciB5b3VyIGhlbHAhLg0K