[jay_diff]
- added default param [deep_diff] - use jay_diff
This commit is contained in:
+8
-5
@@ -1,6 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
from jay_diff import jay_diff_full, jay_merge_full
|
||||||
|
|
||||||
def deep_diff(data, temp_data):
|
def deep_diff(data, temp_data):
|
||||||
new_data = {}
|
new_data = {}
|
||||||
@@ -37,16 +37,19 @@ def deep_merge(d, u, only_existing=True):
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
files = [
|
files = [
|
||||||
"results/WVWZZZE1ZMP010760/2024/10/18/vehicle_WVWZZZE1ZMP010760_2024-10-15T12-05-23-268Z.json",
|
"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",
|
"results/WVWZZZE1ZMP010760/2024/10/19/vehicle_WVWZZZE1ZMP010760_2024-10-19T00-00-34-353Z.json",
|
||||||
]
|
]
|
||||||
for file in files:
|
for file in files:
|
||||||
|
print(f"-----------------------------------------------------------------------------------------------------------------")
|
||||||
|
print(f"--- Using file {file}")
|
||||||
|
print(f"-----------------------------------------------------------------------------------------------------------------")
|
||||||
with open(file, "r") as fp:
|
with open(file, "r") as fp:
|
||||||
src = json.load(fp)
|
src = json.load(fp)
|
||||||
src_last = {}
|
src_last = {}
|
||||||
diffed_list = []
|
diffed_list = []
|
||||||
last = {}
|
last = {}
|
||||||
for s in src:
|
for s in src:
|
||||||
diffed = deep_diff(s, last)
|
diffed = jay_diff_full(last, s)
|
||||||
diffed_list.append(deepcopy(diffed))
|
diffed_list.append(deepcopy(diffed))
|
||||||
last = deepcopy(s)
|
last = deepcopy(s)
|
||||||
print(f"Diffed: {diffed}")
|
print(f"Diffed: {diffed}")
|
||||||
@@ -54,10 +57,10 @@ if __name__ == '__main__':
|
|||||||
merged_list = []
|
merged_list = []
|
||||||
last = {}
|
last = {}
|
||||||
for d in diffed_list:
|
for d in diffed_list:
|
||||||
merged = deep_merge(last, d)
|
merged = jay_merge_full(last, d)
|
||||||
last = deepcopy(merged)
|
last = deepcopy(merged)
|
||||||
merged_list.append(deepcopy(merged))
|
merged_list.append(deepcopy(merged))
|
||||||
print(f"Merged: {merged}")
|
|
||||||
|
|
||||||
|
# Check integrity
|
||||||
assert src == merged_list
|
assert src == merged_list
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@ def jay_diff_upd_add(_old, _new):
|
|||||||
return jay_diff_upd(_old, _new, add_if_not_exist=True)
|
return jay_diff_upd(_old, _new, add_if_not_exist=True)
|
||||||
|
|
||||||
|
|
||||||
def jay_diff_full(_old, _new, combine_upd_add):
|
def jay_diff_full(_old, _new, combine_upd_add=True):
|
||||||
diff = {}
|
diff = {}
|
||||||
if combine_upd_add:
|
if combine_upd_add:
|
||||||
res = jay_diff_upd_add(_old, _new)
|
res = jay_diff_upd_add(_old, _new)
|
||||||
|
|||||||
Reference in New Issue
Block a user