Python实现将字典中键相同的值合并
在Python字典中键是唯一的,但是业务需求是将不同的数据传递到不同的接口,接口列表中存在3个相同的接口,需要将3个接口对应的数据合并一同发送,逻辑实现如下
merge_dict = {}
for file in files:
path = os.path.join(folder_path, file) # 文件路径
account_sign = file.split(".")[0]
results = get_content(path, account_sign) # 文件数据
org_url = dict1[account_sign] # 不同文件名对应不同的url
# 合并org_url相同的数据
if org_url not in merge_dict.keys():
merge_dict[org_url] = results
else:
merge_dict[org_url].extend(results)
for org_url, results in merge_dict.items():
print(org_url, len(results))
简单来说是这样,但是下面例子中第二个a会覆盖第一个a的值,在我的业务中,并没有把这些键值对放到列表里,而是遍历的时候直接添加到新字典,所以可行
dicts = [{"a": [1, 2], "b": [1, 2], "a": [3, 4]}] # python会覆盖重复键
merged_dict = {}
for d in dicts:
for key, value in d.items():
print(key, value)
if key not in merged_dict:
merged_dict[key] = value
else:
merged_dict[key].extend(value)
print(merged_dict)