From 57d9cda41f6921b5d50827f7074a48e3079657ac Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sat, 19 Oct 2024 10:47:32 +0200 Subject: [PATCH] [deep_diff] - use isinstance() instead of type() - make tests harder --- deep_diff.py | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/deep_diff.py b/deep_diff.py index 2e0a202..13481a3 100644 --- a/deep_diff.py +++ b/deep_diff.py @@ -5,7 +5,7 @@ from copy import deepcopy def deep_diff(data, temp_data): new_data = {} for k in data.keys(): - if type(data[k]) == type({}): + if isinstance(data[k], dict): if k not in temp_data: temp_data[k] = {} temp = deep_diff(data[k], temp_data[k]) @@ -35,24 +35,29 @@ def deep_merge(d, u, only_existing=True): if __name__ == '__main__': - with open("results/WVWZZZE1ZMP010760/2024/10/18/vehicle_WVWZZZE1ZMP010760_2024-10-15T12-05-23-268Z.json", "r") as fp: - src = json.load(fp) - src_last = {} - diffed_list = [] - last = {} - for s in src: - diffed = deep_diff(s, last) - diffed_list.append(deepcopy(diffed)) - last = deepcopy(s) - print(f"Diffed: {diffed}") + files = [ + "results/WVWZZZE1ZMP010760/2024/10/18/vehicle_WVWZZZE1ZMP010760_2024-10-15T12-05-23-268Z.json", +# "results/WVWZZZE1ZMP010760/2024/10/19/vehicle_WVWZZZE1ZMP010760_2024-10-19T00-00-34-353Z.json", + ] + for file in files: + with open(file, "r") as fp: + src = json.load(fp) + src_last = {} + diffed_list = [] + last = {} + for s in src: + diffed = deep_diff(s, last) + diffed_list.append(deepcopy(diffed)) + last = deepcopy(s) + print(f"Diffed: {diffed}") - merged_list = [] - last = {} - for d in diffed_list: - merged = deep_merge(last, d) - last = deepcopy(merged) - merged_list.append(deepcopy(merged)) - print(f"Merged: {merged}") + merged_list = [] + last = {} + for d in diffed_list: + merged = deep_merge(last, d) + last = deepcopy(merged) + merged_list.append(deepcopy(merged)) + print(f"Merged: {merged}") - assert src == merged_list + assert src == merged_list