将字典转换为特定格式

时间:2021-07-07 08:35:09

标签: python dictionary

我有以下字典

{1: [10], 2: [20, 30]}

并想转换成下面这样

{1:[{label:10,value:10}], 2:[{label:20,value:20}, {label:30,value:30}]}

2 个答案:

答案 0 :(得分:1)

您可以使用列表理解:

d = {1: [10], 2: [20, 30]}
{k: [{'label': v, 'value': v} for v in vs] for k, vs in d.items()}

输出:

{1: [{'label': 10, 'value': 10}],
 2: [{'label': 20, 'value': 20}, {'label': 30, 'value': 30}]}

答案 1 :(得分:1)

尽管 perl answer 使用列表推导式并在一行中完成,但我认为它没有达到您想要的格式。 我,就我自己而言,我无法使用 dict comprehension 来做到这一点,所以我无法在一行中做到这一点,但我做到了:

old_dict = {1: [10], 2: [20, 30]}
new_dict = {}
for key, value in old_dict.items():
     new_dict[key] = [{"label":x, "value":x} for x in value]

输出应该是:

{1: [{'label': 10, 'value': 10}], 2: [{'label': 20, 'value': 20}, {'label': 30, 'value': 30}]}