从字典创建嵌套列表



我有麻烦做一个嵌套列表从字典。我希望任何人都能帮助我实现我的目标输出,你可以看到它在底部。

我代码:

data = {
"abc": [{"cba": "cab", "lmn": "mnl"}],
"def": [{"fed": "fde", "opq": "poq", "rst": "tsr", "jkl": "klj"}],
"ghi": [{"xyz": "zxy", "uvw": "vuw"}],
"etag": "W/ABCDXYZ"
}
dict_list = []
dict_lists = []
for d in data.keys():
dict_obj = {}
if isinstance(data[d], list):
for dl in data[d]:
dict_obj[d] = dl
dict_list.append(dict_obj)
else:
dict_list.append({d : data[d]})
for dl in dict_list:
dict_obj = {}
for do in dl:
if isinstance(dl[do], dict):
for v in dl[do].keys():
dict_obj[do] = { v : dl[do][v] }
dict_lists.append({ do : dict_obj[do] })
else:
dict_lists.append([{ do : dl[do] }])
print(dict_lists)

输出
[{'abc': {'cba': 'cab'}}, {'abc': {'lmn': 'mnl'}}, 
{'def': {'fed': 'fde'}}, {'def': {'opq': 'poq'}}, {'def': {'rst': 'tsr'}}, {'def': {'jkl': 'klj'}}, 
{'ghi': {'xyz': 'zxy'}}, {'ghi': {'uvw': 'vuw'}}, 
[{'etag': 'W/ABCDXYZ'}]]

我的目标是实现以下输出:

[
[{'abc': {'cba': 'cab'}}, {'abc': {'lmn': 'mnl'}}], 
[{'def': {'fed': 'fde'}}, {'def': {'opq': 'poq'}}, {'def': {'rst': 'tsr'}}, {'def': {'jkl': 'klj'}}], 
[{'ghi': {'xyz': 'zxy'}}, {'ghi': {'uvw': 'vuw'}}], 
[{'etag': 'W/ABCDXYZ'}]
]

我想这个可以。

out = []
for key, values in data.items():
lst = []
if type(values[0]) != dict:
lst.append({key: values[0]})
else:
for k, v in values[0].items():
lst.append({key: {k: v}})
out.append(lst)
print(out)

输出如下:

[
[{'abc': {'cba': 'cab'}}, {'abc': {'lmn': 'mnl'}}],
[{'def': {'fed': 'fde'}}, {'def': {'opq': 'poq'}}, {'def': {'rst': 'tsr'}}, {'def': {'jkl': 'klj'}}],
[{'ghi': {'xyz': 'zxy'}}, {'ghi': {'uvw': 'vuw'}}],
[{'etag': 'W/ABCDXYZ'}]
]

最新更新