recursive_merge_dicts#

gammapy.utils.scripts.recursive_merge_dicts(a, b)[source]#

Recursively merge two dictionaries.

Entries in ‘b’ override entries in ‘a’. The built-in update function cannot be used for hierarchical dicts, see: http://stackoverflow.com/questions/3232943/update-value-of-a-nested-dictionary-of-varying-depth/3233356#3233356

Parameters:
adict

Dictionary to be merged.

bdict

Dictionary to be merged.

Returns:
cdict

Merged dictionary.

Examples

>>> from gammapy.utils.scripts import recursive_merge_dicts
>>> a = dict(a=42, b=dict(c=43, e=44))
>>> b = dict(d=99, b=dict(c=50, g=98))
>>> c = recursive_merge_dicts(a, b)
>>> print(c)
{'a': 42, 'b': {'c': 50, 'e': 44, 'g': 98}, 'd': 99}