flatten_dict_lists(): Don't flatten lists with duplicate keys

If we have a list of dicts, and we flatten that into a dict: Only
do that if there are no dicts with duplocate key values in the list,
as otherwise we will loose information during the transformation.

Change-Id: I7f6d03bf323a153f3172853a3ef171cbec8aece7
Closes: OS#6288
This commit is contained in:
Harald Welte
2023-12-06 09:01:00 +01:00
parent 9c38711773
commit 880db37356

View File

@@ -435,8 +435,12 @@ def flatten_dict_lists(inp):
return False
return True
def are_elements_unique(lod):
set_of_keys = set([list(x.keys())[0] for x in lod])
return len(lod) == len(set_of_keys)
if isinstance(inp, list):
if are_all_elements_dict(inp):
if are_all_elements_dict(inp) and are_elements_unique(inp):
# flatten into one shared dict
newdict = {}
for e in inp: