Frontend weiterarbeit, Client Server datenaustausch und sync, fertiggestellt.
This commit is contained in:
@@ -1,42 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Created on Thu Apr 18 17:13:06 2024
|
||||
|
||||
@author: dh
|
||||
"""
|
||||
def merge_json(old_json, new_json):
|
||||
if not isinstance(old_json, dict) or not isinstance(new_json, dict):
|
||||
# Überprüfen, ob new_json keine Timestamps enthält
|
||||
if "timestamps" not in new_json:
|
||||
return old_json
|
||||
|
||||
for key, value in new_json.items():
|
||||
if key not in old_json:
|
||||
old_json[key] = value
|
||||
elif isinstance(value, list):
|
||||
if key not in old_json:
|
||||
old_json[key] = []
|
||||
if key == "timestamps":
|
||||
for item in value:
|
||||
if item not in old_json[key]:
|
||||
old_json[key].append(item)
|
||||
else:
|
||||
old_json[key].extend(value)
|
||||
elif isinstance(value, dict):
|
||||
old_json[key] = merge_json(old_json.get(key, {}), value)
|
||||
|
||||
# Überprüfen, ob old_json keine Timestamps enthält
|
||||
if "timestamps" not in old_json:
|
||||
return new_json
|
||||
|
||||
# Schritt 1: Neue Timestamps prüfen und ggf. hinzufügen
|
||||
for timestamp in new_json["timestamps"]:
|
||||
if timestamp not in old_json["timestamps"]:
|
||||
old_json["timestamps"].append(timestamp)
|
||||
|
||||
# Schritt 2: Neue Werte an den richtigen Positionen einfügen
|
||||
for key, values in new_json["data"].items():
|
||||
if key in old_json["data"]:
|
||||
for i, timestamp in enumerate(new_json["timestamps"]):
|
||||
index = old_json["timestamps"].index(timestamp)
|
||||
if i < len(values):
|
||||
if len(old_json["data"][key]) > index:
|
||||
old_json["data"][key][index] = values[i]
|
||||
else:
|
||||
old_json["data"][key].append(values[i])
|
||||
else:
|
||||
old_json[key] = value
|
||||
|
||||
old_json["data"][key] = [None] * len(old_json["timestamps"])
|
||||
for i, timestamp in enumerate(new_json["timestamps"]):
|
||||
index = old_json["timestamps"].index(timestamp)
|
||||
if i < len(values):
|
||||
if len(old_json["data"][key]) > index:
|
||||
old_json["data"][key][index] = values[i]
|
||||
else:
|
||||
old_json["data"][key].append(values[i])
|
||||
|
||||
return old_json
|
||||
|
||||
# Beispielaufruf
|
||||
old_json = {
|
||||
# Beispielaufrufe
|
||||
old_json1 = {
|
||||
"timestamps": ["s", "e", "r"],
|
||||
"data": {"foo": [1, 2, 4], "bar": [3, 4, 6]}
|
||||
}
|
||||
|
||||
new_json = {
|
||||
new_json1 = {}
|
||||
|
||||
merged_json1 = merge_json(old_json1, new_json1)
|
||||
print(merged_json1)
|
||||
|
||||
old_json2 = {}
|
||||
|
||||
new_json2 = {
|
||||
"timestamps": ["r", "p"],
|
||||
"data": {"foo": [4,5], "bar": [6,7]}
|
||||
"data": {"foo": [4, 4], "bar": [6, 7]}
|
||||
}
|
||||
|
||||
merged_json = merge_json(old_json, new_json)
|
||||
print(merged_json)
|
||||
merged_json2 = merge_json(old_json2, new_json2)
|
||||
print(merged_json2)
|
||||
|
||||
|
||||
merged_json2 = merge_json(old_json1, new_json2)
|
||||
print(merged_json2)
|
||||
Reference in New Issue
Block a user