Python循环遍历嵌套数组

时间:2016-12-29 16:05:17

标签: python arrays for-loop iteration

我有一个看起来像这样的json:

[  
   {  
      "status":"passed",
      "elements":[{"name":"foo"},{"name":"bar"}]
   },
   {  
      "status":"failed",
      "elements":[{"name":"foo1"},{"name":"bar1"}]
   }
]

我正在尝试遍历元素数组:

for a in json['elements']:
   print a['name']

我收到此错误:

  

TypeError:list indices必须是整数,而不是str

我的python非常糟糕。谢谢

3 个答案:

答案 0 :(得分:2)

试试这个:

for a in json:
   for b in a['elements']:
       print b['name']

答案 1 :(得分:0)

使用您的代码,您试图从字典'elements'中获取密钥json的值。但是json不是一个词典,而是一系列词汇。因此,你应该做的是:

for dic_x in json:
    for dic_y in dic_x['elements']:
        print dic_y['name']

答案 2 :(得分:0)

您需要循环浏览list,然后继续处理您的数据,就像您使用dicts一样,例如:

my_json = [  
   {  
      "status":"passed",
      "elements":[{"name":"foo"},{"name":"bar"}]
   },
   {  
      "status":"failed",
      "elements":[{"name":"foo1"},{"name":"bar1"}]
   }
]

for element in my_json:
    for v in element["elements"]:
        print(v["name"])

输出:

foo
bar
foo1
bar1