Add script for merging dictionaries
This commit is contained in:
parent
4b8e4f9846
commit
a6469184fb
33
src/aidgaf/aidgaf-server/merge.py
Normal file
33
src/aidgaf/aidgaf-server/merge.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
"""This module contains the merge_dict function."""
|
||||||
|
|
||||||
|
from functools import reduce
|
||||||
|
|
||||||
|
def merge_dict_no_overwrite(base_dictionary, other_dictionary, location=None)->dict:
|
||||||
|
""" This function merges two dictionaries. If the same key exists in both dictionaries,
|
||||||
|
the value from the other_dictionary will be used. This function will recurse into nested
|
||||||
|
dictionaries. If the same key exists in both dictionaries, and the value is a dictionary,
|
||||||
|
the function will recurse into the nested dictionary. If the same key exists in both dictionaries,
|
||||||
|
and the value is not a dictionary, the value from the base_dictionary will be used.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
base_dictionary: The dictionary to merge the other_dictionary into.
|
||||||
|
other_dictionary: The dictionary to merge keys from. if the same key exists in both dictionaries,
|
||||||
|
the value from the base_dictionary will be used.
|
||||||
|
location: leave blank. This is used to track the location of the key in the dictionary.
|
||||||
|
Returns:
|
||||||
|
The merged dictionary.
|
||||||
|
|
||||||
|
"""
|
||||||
|
if location is None:
|
||||||
|
location=[]
|
||||||
|
for key in other_dictionary:
|
||||||
|
if key in base_dictionary:
|
||||||
|
if isinstance(base_dictionary[key], dict) and isinstance(other_dictionary[key], dict):
|
||||||
|
merge_dict_no_overwrite(base_dictionary[key], other_dictionary[key],[str(key)])
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
base_dictionary[key] = other_dictionary[key]
|
||||||
|
return base_dictionary
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user