join list of dicts python code example

Example 1: how to merge a list of dictionaries in python

from collections import defaultdict
dict_list = {
	1: [{
			"x": "test_1",
			"y": 1
		},
		{
			"x": "test_2",
			"y": 1
		}, {
			"x": "test_1",
			"y": 2
		}
	],
}
print(dict_list) # {1: [{'x': 'test_1', 'y': 1}, {'x': 'test_2', 'y': 1}, {'x': 'test_1', 'y': 2}]}

data = dict()
for key, value in dict_list.items():
    tmp = defaultdict(int)
    for index, item in enumerate(value):
        tmp[item.get("x") ] += item.get("y")

    for tmp_key, tmp_value in tmp.items():
        data.setdefault(key, []).append(
            {
                "x": tmp_key,
                "y": tmp_value
            }
        )
print(data) # {1: [{'x': 'test_1', 'y': 3}, {'x': 'test_2', 'y': 1}]}

# test 1 values is added together

Example 2: merged all dictionaries in a list python

>>> result = {}
>>> for d in L:
...    result.update(d)
... 
>>> result
{'a':1,'c':1,'b':2,'d':2}

Example 3: python join dict

def mergeDict(dict1, dict2):
   ''' Merge dictionaries and keep values of common keys in list'''
   dict3 = {**dict1, **dict2}
   for key, value in dict3.items():
       if key in dict1 and key in dict2:
               dict3[key] = [value , dict1[key]]
 
   return dict3
 
# Merge dictionaries and add values of common keys in a list
dict3 = mergeDict(dict1, dict2)
 
print('Dictionary 3 :')
print(dict3)