在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] = resultselse: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] = valueelse:merged_dict[key].extend(value)print(merged_dict)