X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Futils.py;h=aac3d905afb3eb21d24a494239d10415dcbd2fb2;hp=bb9e33e7fec4615ee04b9e4ac3d30f16bed20ae2;hb=b995ea260a3a2f88a4e041c7e2dd745daee91825;hpb=3576644cf8903148f59718ff998194b6bee20d84 diff --git a/osm_nbi/utils.py b/osm_nbi/utils.py index bb9e33e..aac3d90 100644 --- a/osm_nbi/utils.py +++ b/osm_nbi/utils.py @@ -37,3 +37,22 @@ def find_index_in_list(the_list, condition_lambda): return index else: return -1 + + +def deep_update_dict(data, updated_data): + if isinstance(data, list): + processed_items_data = [] + for index, item in enumerate(data): + processed_items_data.append(deep_update_dict(item, updated_data[index])) + return processed_items_data + + if isinstance(data, dict): + for key in data.keys(): + if key in updated_data: + if not isinstance(data[key], dict) and not isinstance(data[key], list): + data[key] = updated_data[key] + else: + data[key] = deep_update_dict(data[key], updated_data[key]) + return data + + return data