Очень странно, что никто этого не спрашивал раньше. Я не могу найти ответа на это в Интернете. У меня есть вложенный dictionnary, и мне нужен список всех его значений (не вложенный список). Это мой код:Получить значения из вложенного словаря в список
dico = {
"Balance": {
"Normal": {
"P1x": 0.889,
"P1y": 700.0,
"P2x": 0.889,
"P2y": 884.0,
"P3x": 1.028,
"P3y": 1157.0,
"P4x": 1.201,
"P4y": 1157.0,
"P5x": 1.201,
"P5y": 700.0
},
"Utility": {
"P1x": 0.889,
"P1y": 700.0,
"P2x": 0.889,
"P2y": 884.0,
"P3x": 0.947,
"P3y": 998.0,
"P4x": 1.028,
"P4y": 998.0,
"P5x": 1.028,
"P5y": 700.0,
}
}
}
def grab_children(father):
local_list = []
for key, value in father.items():
local_list.append(value)
local_list.extend(grab_children(father[key]))
return local_list
print(grab_children(dico))
dictionnary это нормально гораздо дольше и содержат строки, логические, целые числа и поплавки.
Когда я попробовать свои функции, он сказал AttributeError: 'str' object has no attribute 'items'
Я понимаю, почему, но я не вижу, как это исправить ... Вы можете мне помочь?
Спасибо!
Ваша рекурсия неверна, потому что она никогда не заканчивается без ошибки: когда значение представляет собой строку, а не другой вложенный dict, вы все равно передаете ее в 'grab_children()'. Вы должны остановить рекурсию, когда значение не является dict. – dsh