После анализа параметра URL для частичных ответов, например, ?fields=name,id,another(name,id),date
, я получаю обратно произвольно вложенный список строк, представляющих отдельные ключи вложенного объекта JSON:
['name', 'id', ['another', ['name', 'id']], 'date']
Цель состоит в том, чтобы отобразить этот проанализированный «график» ключей на оригинальный, более крупный диктовку и просто извлечь его частичную копию, например:
input_dict = {
"name": "foobar",
"id": "1",
"another": {
"name": "spam",
"id": "42",
"but_wait": "there is more!"
},
"even_more": {
"nesting": {
"why": "not?"
}
},
"date": 1584567297
}
должен просто перейти к :
output_dict = {
"name": "foobar",
"id": "1",
"another": {
"name": "spam",
"id": "42"
},
"date": 1584567297,
}
Софар, я просмотрел вложенных defaultdicts , addict и glom , но сопоставления, которые они принимают поскольку входные данные несовместимы с моим списком (возможно, что-то пропустили), и я получаю мусор.
Как я могу сделать это программно и учесть любое вложение, которое может произойти?