@grecigor25

Как называется алгоритм для раскладывания словаря?

Есть такой словарь
{
"a":"1", 
"b":{
      "c":{"d":"2",
             "e":"3",
            }
      "f":"4",
      }
"g":"5"
}


Нужно его превратить в это

{
"a":"1",
"b.c.d":"2",
"b.c.e":"3",
"b.f":"4",
"g":"5",
}


Я понимаю что это делается рекурсивно, проверяя инснтанс и т.д, но в голове не могу уложиться как решить эту задачу, можете сказать как называется алгоритм для решения этой задачи, что бы я его запомнил или понял в какое русло нужно двигаться.
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
Никак не называется. Обходите рекурсивно вложенные элементы, ну и всё:

def nested_to_plain(obj):
  result = {}

  for key, val in obj.items():
    if type(val) == dict:
      result.update({ key + '.' + k: v for k, v in nested_to_plain(val).items() })
    else:
      result[key] = val

  return result
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы