我有一个看起来像这样的python dict
{'data': [{'data': [{'data': 'gen1', 'name': 'objectID'},
{'data': 'familyX', 'name': 'family'}],
'name': 'An-instance-of-A'},
{'data': [{'data': 'gen2', 'name': 'objectID'},
{'data': 'familyY', 'name': 'family'},
{'data': [{'data': [{'data': '21',
'name': 'objectID'},
{'data': 'name-for-21',
'name': 'name'},
{'data': 'no-name', 'name': None}],
'name': 'An-instance-of-X:'},
{'data': [{'data': '22',
'name': 'objectID'}],
'name': 'An-instance-of-X:'}],
'name': 'List-of-2-X-elements:'}],
'name': 'An-instance-of-A'}],
'name': 'main'}
结构是重复的,它的规则是这样的:
- 字典包含“名称”和“数据”
- 'data' 可以包含字典列表
- 如果“数据”不是一个列表,它就是我需要的一个值。
- 'name' 只是一个名字
问题是对于每个值,我需要知道每个父母的每个信息。
所以最后,我需要打印一个列表,其中包含如下所示的项目:
objectID=gen2 family=familyY An-instance-of-X_objectID=21 An-instance-of-X_name=name-for-21
编辑:这只是我想要作为输出的几行之一。对于没有字典作为“数据”的每个项目,我都需要这样的一行。
因此,对于每个不是字典的数据,向上遍历,查找信息并打印它..
我不知道模块中的每个函数,比如 itertools 和集合。但是里面有什么我可以使用的吗?这叫什么(当我试图自己做研究时)?
我可以找到许多“扁平化字典”方法,但不是这样,当我有这样的“数据”、“名称”时不是这样。