import json import os def check_truth(): file_path = "raw_api_response.json" if not os.path.exists(file_path): print(f"❌ Datei {file_path} nicht gefunden.") return print(f"🧐 Analysiere {file_path}...") try: with open(file_path, "r") as f: data = json.load(f) udfs = data.get("UserDefinedFields", {}) print(f"✅ JSON erfolgreich geladen. UDFs gefunden: {len(udfs)}") invalid_keys = [] for key in udfs.keys(): if not isinstance(key, str): invalid_keys.append((key, type(key))) if invalid_keys: print(f"❌ FEHLER GEFUNDEN! Folgende Keys sind KEINE Strings:") for k, t in invalid_keys: print(f" - Key: {k}, Typ: {t}") else: print("✅ Alle Keys in UserDefinedFields sind valide Strings.") # Jetzt prüfen wir unsere eigenen Settings gegen dieses Dict print("\n--- Teste Zugriff mit unseren Settings ---") from dotenv import load_dotenv import sys # Pfad zum Hauptverzeichnis für .env dotenv_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '.env')) load_dotenv(dotenv_path=dotenv_path, override=True) # Pfad für config import sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from config import settings test_keys = { "Vertical": settings.UDF_VERTICAL, "Summary": settings.UDF_SUMMARY, "Opener": settings.UDF_OPENER } for name, key in test_keys.items(): print(f"Prüfe {name} (Key: '{key}', Typ: {type(key)})...") try: # Das ist die Stelle, die vorhin zum Absturz führte val = udfs.get(key) print(f" -> Zugriff erfolgreich! Wert: {val}") except TypeError as e: print(f" -> ❌ ABSTURZ: {e}") if isinstance(key, dict): print(f" Grund: settings.UDF_{name.upper()} ist ein DICTIONARY!") except Exception as e: print(f"❌ Allgemeiner Fehler bei der Analyse: {e}") if __name__ == "__main__": check_truth()