Есть некий список многоуровневых словарей. Известно что в каждом словаре есть ключ key и вложенный список словарей subCategories. Список словарей subCategories может быть пустым, а может содержать список других словарей с аналогичной структурой (key и subCategories). Вот пример списка:
list_dict = [
{
'key': 'name',
'subCategories': [
{
'key': 'name',
'subCategories': [
{
'key': 'name',
'subCategories': [],
},
{
'key': 'name',
'subCategories': [],
},
]
},
{
'key': 'name_2',
'subCategories': []
},
{
'key': 'name_3',
'subCategories': []
},
]
},
{
'key': 'name',
'subCategories': []
}
]
задача - получить все имена key, самых последних subCategories, (т.е.
if len(subCategories) == 0 return key
)
Пробую реализовать таким способом
def get_names(list_dic):
name = list_dic.get('name')
subCats = list_dic.get('subCategories')
if isinstance(subCats, list):
for subCat in subCats:
get_models(subCat)
return name
for name in list_dic:
print(get_names(name))
... но получаю только самые первые значения key.
Как это реализовать?