[英]How to merge values of dictionaries with same key into one from a list of dictionaries?
我有一个字典列表,如下所示
description = [{"category": "emergency", "meds": [{"drug": "mild", "env": "cold"}]},
{"category": "normal", "meds": [{"drug": "slow", "env": "normal"}]},
{"category": "emergency", "meds": [{"drug": "severe", "env": "hot"}]},
{"category": "medium", "meds": [{"drug": "drowsy", "env": "normal"}]},
{"category": "normal", "meds": [{"drug": "mild", "env": "normal"}]}]
如您所看到的类别键, emergency
和normal
emergency
两次出现。 现在,我想要将这两个键的值合并为一个,如下所示
description_collapsed = [{"category": "emergency", "meds": [{"drug": "mild", "env": "cold"}, {"drug": "severe", "env": "hot"}]},
{"category": "normal", "meds": [{"drug": "slow", "env": "normal"}, {"drug": "mild", "env": "normal"}]},
{"category": "medium", "meds": [{"drug": "drowsy", "env": "normal"}]}]
我试图做这样的事情
description_collapsed = {}
for i in description:
if description_collapsed.get(i["category"]):
description_collapsed.get(i["meds"].extend(i["meds"]))
else:
description_collapsed[i["category"]] = i["meds"]
但是对于每种类别的meds键,我只有一本字典。
如何获得所需的输出?
i['meds']
不是description_collapses
的键。 规则是description_collapsed.get(i["category"])
,因此您需要扩展该值。
您的括号也有误。
请注意,您的最终结果将是字典,而不是列表。
description_collapsed = {}
for i in description:
if i["category"] in description_collapsed:
description_collapsed.[i["category"]].extend(i["meds"])
else:
description_collapsed[i["category"]] = i["meds"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.