在解析部分响应的 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,但是它们作为输入的映射与我的列表不兼容(当然可能遗漏了一些东西),我最终得到了垃圾。
如何以编程方式执行此操作,并考虑可能发生的任何嵌套?