簡體   English   中英

如何將嵌套字典更改為字典列表?

[英]How to change a nested dictionary to a list of dictionary?

我有一本這樣的字典-

{'A': {'c1': 0, 'c2': 4, 'c3': 0, 'c4': 0, 'c5': 0}, 'B': {'c1': 1, 'c2': 0, 'c3': 0, 'c4': 0, 'c5': 0}}

我需要將其更改為這樣的列表-

data = [{"employee_id": 'A', 'c1': 0, 'c2': 4, 'c3': 0, 'c4': 0, 'c5': 0},
        {"employee_id": 'B', 'c1': 1, 'c2': 0, 'c3': 0, 'c4': 0, 'c5': 0}
        ]

如果這是一個非常基本的問題,我很抱歉,我有生以來第一次在 python 上工作。

迭代它:

emp_dict = {'A': {'c1': 0, 'c2': 4, 'c3': 0, 'c4': 0, 'c5': 0},
            'B': {'c1': 1, 'c2': 0, 'c3': 0, 'c4': 0, 'c5': 0}}
emp_list = []
for emp_id, data in emp_dict.items():
    emp_list.append({'employee_id': emp_id, **data})

print(emp_list)

您也可以改用理解:

emp_list = [{'employee_id': emp_id, **data} for emp_id, data in emp_dict.items()]

輸出:

[{'employee_id': 'A', 'c1': 0, 'c2': 4, 'c3': 0, 'c4': 0, 'c5': 0}, {'employee_id': 'B', 'c1': 1, 'c2': 0, 'c3': 0, 'c4': 0, 'c5': 0}]

如果您只有少量數據,您可以遍歷它並逐步填充列表。 我將您的初始字典命名為mydict

data = []
for e in mydict.keys():
    entry = mydict[e]
    entry['employee_id'] = e
    data.append(entry)

這會將所有員工添加到列表中。

您必須遍歷主字典中的所有對象並將它們添加到新數組中。 這是它的示例代碼。

arr = []
for key in main_dict.keys():
  arr.append({
    "employee_id": key,
  }.update(main_dict[key]))

這也可以通過列表推導字典解包操作來完成。

d = {
    "A": {"c1": 0, "c2": 4, "c3": 0, "c4": 0, "c5": 0},
    "B": {"c1": 1, "c2": 0, "c3": 0, "c4": 0, "c5": 0},
}

l = [{"employee_id": key, **data} for (key, data) in d.items()]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM