Seite 1 von 1
Syntax Error Noob Frage
Verfasst: Dienstag 29. April 2025, 20:23
von shoxxy
Hallo zusammen
Ich bin nur Nutzer kein Programmier, ich habe vom bekannten ein script bekommen. Auszug siehe unten. leider sind die Zeilen 2 bis x falsch formatiert oder gespeichert, könnte die vielleicht jemand für mich richtig anordnen ? das wäre sehr nett, habe da wirklich 0 ahnung.
Danke im voraus für die Hilfe
Mfg
Code: Alles auswählen
def load_saved_configs():
"""Load saved configurations from file.""" if not os.path.exists(CONFIG_FILE):
return {} with open(CONFIG_FILE, "r") as f:
return json.load(f)
def save_config(events):
"""Save a new configuration with an incremental ID."""
configs = load_saved_configs()
# Determine new config ID
new_id = str(max(map(int, configs.keys()), default=0) + 1)
configs[new_id] = events
with open(CONFIG_FILE, "w") as f:
json.dump(configs, f, indent=4)
print(f"Configuration saved as ID {new_id}.")
Re: Syntax Error Noob Frage
Verfasst: Donnerstag 1. Mai 2025, 08:45
von Sirius3
Einrückungen geben die Struktur vor:
Code: Alles auswählen
def load_saved_configs():
"""Load saved configurations from file."""
if not os.path.exists(CONFIG_FILE):
return {}
with open(CONFIG_FILE, "r") as f:
return json.load(f)
Re: Syntax Error Noob Frage
Verfasst: Donnerstag 1. Mai 2025, 22:44
von shoxxy
Vieleb vielen Dank Sirius3
Das hat geklappt

Re: Syntax Error Noob Frage
Verfasst: Freitag 2. Mai 2025, 23:38
von __blackjack__
@shoxxy: Wenn Du schon dabei bist, könntest Du gleich noch Fehler beheben.
Vor den Fehlern noch eine Anmerkungen zum Vorgehen: Man testet nicht die Existenz einer Datei bevor man sie öffnet, a) kann zwischen Test und öffnen ein anderer Prozess die Datei gelöscht oder verschoben haben, und b) ist der Test im `open()` auch noch einmal enthalten, denn das merkt ja wenn die Datei nicht existiert und löst eine `FileNotFound`-Ausnahme aus. *Die* behandelt man einfach entsprechend.
Die Fehler sind jeweils beim öffnen der JSON-Datei: JSON-Dateien sind UTF-8 kodiert. Das heisst das Programm funktioniert nur wirklich korrekt, wenn das auch die Kodierung ist, die Python vom System ”rät”. Wenn man Textdateien öffnet sollte man also immer explizit eine Kodierung angeben, um unangenehme Überraschungen zu vermeiden. Wobei in diesem konkreten Fall beim Lesen die Datei auch einfach im Binärmodus geöffnet werden kann — dann kümmert sich das `json`-Modul um die Dekodierung und käme auch mit anderen UTF-Kodierungen klar.
Code: Alles auswählen
def load_saved_configs():
"""
Load saved configurations from file.
"""
try:
with open(CONFIG_FILE, "rb") as file:
return json.load(file)
except FileNotFoundError:
return {}
def save_config(events):
"""
Save a new configuration with an incremental ID.
"""
configs = load_saved_configs()
new_id = str(max(map(int, configs.keys()), default=0) + 1)
configs[new_id] = events
with open(CONFIG_FILE, "w", encoding="utf-8") as file:
json.dump(configs, file, indent=4)
print(f"Configuration saved as ID {new_id}.")
Re: Syntax Error Noob Frage
Verfasst: Montag 5. Mai 2025, 09:28
von ClydeOwen
Ich habe das Problem gelöst, indem ich den Code so angepasst habe, dass die JSON-Datei zuerst überprüft wird, ob sie existiert. Falls nicht, erstelle ich sie mit einem leeren Dictionary. Außerdem habe ich den Code so geändert, dass die Daten richtig gelesen und geschrieben werden, inklusive einer Fehlerbehandlung für ungültiges JSON. Hier ist mein aktualisierter Code:
Code: Alles auswählen
python
import os
import json
CONFIG_FILE = 'config.json' # Dein Dateiname für die Konfiguration
def load_saved_configs():
if not os.path.exists(CONFIG_FILE):
# Falls die Datei noch nicht existiert, erstelle sie mit leerem Inhalt
with open(CONFIG_FILE, 'w') as f:
json.dump({}, f)
return {}
with open(CONFIG_FILE, 'r') as f:
try:
configs = json.load(f) # Versuche, die Konfiguration zu laden
except json.JSONDecodeError:
# Falls die Datei ungültiges JSON enthält, returne leeres Dict
configs = {}
return configs
def save_config(events, configs):
# Ermittle die nächste ID, indem du die höchste vorhandene ID nimmst
new_id = max([int(k) for k in configs.keys()], default=0) + 1
configs[str(new_id)] = events
# Speichere die neuen Daten in der JSON-Datei
with open(CONFIG_FILE, 'w') as f:
json.dump(configs, f, indent=4)
print(f"Konfiguration wurde als ID {new_id} gespeichert.")
# Beispielnutzung:
configs = load_saved_configs()
events = ["Beispiel Event 1", "Beispiel Event 2"]
save_config(events, configs)