diff --git a/packages/helpermodules/measurement_logging/write_log.py b/packages/helpermodules/measurement_logging/write_log.py index 40aeaa5f69..92707c9215 100644 --- a/packages/helpermodules/measurement_logging/write_log.py +++ b/packages/helpermodules/measurement_logging/write_log.py @@ -1,6 +1,8 @@ from enum import Enum +import os import json import logging +from math import isnan from pathlib import Path import re import string @@ -143,6 +145,10 @@ def save_log(log_type: LogType): content = json.load(jsonFile) except FileNotFoundError: content = {"entries": [], "names": {}} + except json.JSONDecodeError: + new_filepath = str(parent_file / f"{file_name}_invalid.json") + os.rename(filepath, new_filepath) + content = {"entries": [], "names": {}} previous_entry = get_previous_entry(parent_file, content) @@ -263,7 +269,9 @@ def find_and_fix_value(value_name): if value.get(value_name) is not None: if value[value_name] == 0: try: - value[value_name] = previous_entry[group][component][value_name] + if (previous_entry[group][component][value_name] is not None and + isnan(previous_entry[group][component][value_name]) is False): + value[value_name] = previous_entry[group][component][value_name] except KeyError: log.exception("Es konnte kein vorheriger Wert gefunden werden.") if previous_entry is not None: