从defaultdict(list)创建一个dictionary,其中包含嵌套列表



我有一个如下格式的deafaultdict(列表(:

d =    {
't0': [['cat0', ['eagle0']], ['cat1', ['eagle1']]], 
't1': [['cat2', ['eagle2', 'eagle3']]]
}

我需要创建另一个具有附加级别的字典:

{
't':'t0',
'cats': [
{
'cat': 'cat0',
'eagles':['eagle0']
},
{
'cat': 'cat1',
'eagles: ['eagle1]'
}
]
} ...

我试图将现有的defaultdict输出的答案实现为flare树状图的适当JSON格式?,但我不知道如何为"猫"添加这个附加组:

for k, v in d.items():
my_dict = {
't': k,
'cats': [{'cat': v}]
}

输出类似:

{'t': 't0', 'cats':[{'cat': [['cat1', ['eagle1']]]}]}

提前谢谢。

只需循环遍历字典元素,使用列表理解将列表列表重新格式化为字典列表。

original = {
't0': [['cat0', ['eagle0']], ['cat1', ['eagle1']]],
't1': [['cat2', ['eagle2', 'eagle3']]]
}
result = []
for key, cats in original.items():
cats = [{'cat': cat, 'eagles': eagles} for cat, eagles in cats]
result.append({'t': key, 'cats': cats})
print(result)

输出:

[{'t': 't0', 'cats': [{'cat': 'cat0', 'eagles': ['eagle0']}, {'cat': 'cat1', 'eagles': ['eagle1']}]}
,{'t': 't1', 'cats': [{'cat': 'cat2', 'eagles': ['eagle2', 'eagle3']}]}]

最新更新