def merge_dicts(target, enhancer): for key, val in enhancer.items(): if key not in target: target[key] = val continue if isinstance(val, dict): merge_dicts(target[key], val) else: target[key] = val return target