Python 从列表和词典列表中提取所有词典?
我有一个包含其他列表和字典的列表。所有列表都可以包含列表或词典。但是,字典不能包含列表。例如,这样的“主列表”可能如下所示:Python 从列表和词典列表中提取所有词典?,python,list,dictionary,Python,List,Dictionary,我有一个包含其他列表和字典的列表。所有列表都可以包含列表或词典。但是,字典不能包含列表。例如,这样的“主列表”可能如下所示: [ [ [ { 'A': 'B' }, { 'C': 'D' } ], { 'E': 'F' } ], { 'G': 'H' } ] 如何从这样的列表中提取所有词典?结果应该是: { 'A': 'B' } { 'C': 'D' } { 'E': 'F' } { 'G': 'H' } 使用: “然而,字典不能包含列表”。然而你有这样一个怪物:'E':[[[[{'F
[ [ [ { 'A': 'B' }, { 'C': 'D' } ], { 'E': 'F' } ], { 'G': 'H' } ]
如何从这样的列表中提取所有词典?结果应该是:
{ 'A': 'B' }
{ 'C': 'D' }
{ 'E': 'F' }
{ 'G': 'H' }
使用:
“然而,字典不能包含列表”。然而你有这样一个怪物:
'E':[[[[{'F':'G','H':'I'},{'J':'K'}],{'L':'M'}],{'N':'O'}]
。这是一个例外,因为它是第五个元素吗?我投票结束这个问题,因为问题陈述自相矛盾。此外,还没有尝试想出解决方案。这确实解决了问题,谢谢。
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