循环遍历包含字典和列表的python列表

时间:2015-04-23 16:44:19

标签: python

如何从下面的列表中循环访问/访问数据键中的所有值? 1,2,3等..

len(data_list);返回2

for n in data_list:
    print('i')

只打印一次“i”

类似

for i1 in data_list:
    for i2 in i1["rowData"]:
        for i3 in i2["data"]:
            # evaluate the data

+++++++++++++

 [{
    'groupName': 'groupName1',
    'rowData': [{
        'rowName': 'groupName1_rowNamw',
        'data': {
            'key1': '1',
            'key2': '2',
            'key3': '3'
        }
     }],
     'rowDataLength': 1
 }, {
    'groupName': 'groupName2',
    'rowData': [{
        'rowName': 'groupName2_rowName_a',
        'data': {
            'key1': 'a',
            'key2': 'b',
            'key3': 'c'
        }
   },{
    'rowName': 'groupName2_rowName_b',
        'data': {
            'key1': '4',
            'key2': '5',
            'key3': '6'
        }
    }],
    'rowDataLength': 2
}]

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

print([_d["data"] for  d in l for _d in d["rowData"]])
[{'key3': '3', 'key2': '2', 'key1': '1'}, {'key3': 'c', 'key2': 'b', 'key1': 'a'}, {'key3': '6', 'key2': '5', 'key1': '4'}]

如果您希望值使用.values:

print([_d["data"].values() for  d in l for _d in d["rowData"]])

在你的代码中for i3 in i2["data"]遍历dict的键。

答案 1 :(得分:-1)

正如其他人评论过你的代码看起来像你想做的那样,也许你只需要打印一些东西来看看你得到了什么

for i1 in data_list:
  print(i1["groupName"])
  for i2 in i1["rowData"]:
    print(i2["rowName"]) 
    for i3 in i2["data"]:
      print(i3, i2["data"][i3])