首先,对不起我的英语不是很好!我有一个问题,我找不到解决方案。
我有一个这样的图表:

我有这样的函数返回图表:
data = {
'Finition': {
'Metal': {
'colorCorrect1': {
'Color': {
'aiLayerShader2': {
'colorConstant1': {},
'colorConstant3': {},
'colorConstant2': {
'aiFloatToRgba1': {
'place2dTexture1': {}
}
},
'colorConstant4': {},
'colorConstant5': {
'aiFloatToRgba1': {
'place2dTexture1': {}
}
},
'colorConstant6': {}
}
}
}
}
}
}
我有一个主要组的列表(图中的蓝调节点):`
selection = ['Finition', 'Metal', 'Color', 'colorConstant2']
我需要一个可以返回特定组的节点列表(在下一组之前)的函数:
返回值应该是这样的:
[
['Finition'],
['Metal', 'colorCorrect1'],
['Color', 'aiLayerShader2', 'colorConstant1', 'colorConstant3', 'colorConstant4', 'colorConstant5', 'colorConstant6', 'aiFloatToRgba1', 'place2dTexture1'],
['colorConstant2', 'aiFloatToRgba1', 'place2dTexture1']
]
我尝试了以下方法:
def search_recurssive(element=None, main={}, depth=0):
for key, value in main.items():
if key != element:
if isinstance(value, dict):
search_recurssive(element=element, main=value, depth=depth+1)
else:
pprint(value)
print depth
search_recurssive(element='Metal', main=data)
但它没有用。非常感谢你的帮助 !