在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)