def merge_api_payloads(list_of_payloads):
"""Merges a list of API payloads into a single dictionary.
Handles potential key conflicts by appending a numerical suffix.
"""
merged_data = {}
for payload in list_of_payloads:
for key, value in payload.items():
if key in merged_data:
# Handle key conflict by appending a suffix
new_key = f"{key}_{merged_data.get(key, 0) + 1}"
merged_data[new_key] = value
else:
merged_data[key] = value
return merged_data
if __name__ == '__main__':
# Example Usage
payload1 = {"id": 1, "name": "Alice", "email": "alice@example.com"}
payload2 = {"id": 2, "name": "Bob", "city": "New York"}
payload3 = {"id": 1, "phone": "123-456-7890", "email": "alice@example.com"} #Conflict on id and email
payloads = [payload1, payload2, payload3]
merged_payload = merge_api_payloads(payloads)
print(merged_payload)
Add your comment