从列表和词典列表中提取所有词典?

时间:2015-10-30 14:34:20

标签: python list dictionary

我有一个包含其他列表和词典的列表。所有列表都可以包含列表或词典。但是,词典不能包含列表。例如,这样的“主列表”可能如下所示:

[ [ [ { 'A': 'B' }, { 'C': 'D' } ], { 'E': 'F' } ], { 'G': 'H' } ]

如何从这样的列表中提取所有词典?结果应该是:

{ 'A': 'B' }

{ 'C': 'D' }

{ 'E': 'F' }

{ 'G': 'H' }

1 个答案:

答案 0 :(得分:1)

def get_dictionaries(list_obj):
    for item in list_obj:
        if type(item) == list:
            for x in get_dictionaries(item):
                yield x
        elif type(item) == dict:
            yield item
        else:
            raise ValueError("unexpected item type (not a list or a dictionary)")

使用:

top_level_list = [{......
for x in get_dictionaries(top_level_list):
    print x