Python zu JSON Konverter
Füge Python-dicts, dataclasses oder Pydantic-Modelle ein. Du bekommst sauberes JSON zurück.
Was das Tool macht
Wenn du jemals ein Python dict oder eine dataclass in ein JSON-Payload für einen API-Call, ein Test-Fixture oder ein Stück Dokumentation umbauen musstest, weißt du, wie schnell das nervig wird — Anführungszeichen müssen umgedreht werden, True/False werden zu true/false, None wird zu null, und datetime- bzw. Decimal-Werte musst du von Hand serialisieren. Füg das Python hier ein und du bekommst gültiges JSON zurück, das exakt dem entspricht, was json.dumps oder ein .model_dump_json()-Call von Pydantic liefern würde — ganz ohne Klebe-Code.
Das ist kein stumpfer String-Replace. Der Konverter versteht, was Python zur Serialisierungszeit wirklich tut: Strings mit einfachen Anführungszeichen werden doppelt gequotet, tuples werden zu JSON-Arrays, set und frozenset ebenfalls, datetime- und date-Werte kommen als ISO-8601-Strings gemäß RFC 8259 raus, Decimal wird zur Zahl, und Enum-Mitglieder geben ihren .value aus. Verschachtelte Objekte werden an Ort und Stelle expandiert — eine dataclass mit einer Liste weiterer dataclasses überlebt den Roundtrip sauber.
Pydantic-Modelle (v1 und v2) werden unterstützt. Feld-Aliase, die über Field(alias=...) gesetzt sind, benennen die Keys in der Ausgabe um, Optional-Felder mit None bleiben als null erhalten, und Literal/Union-Typen werden mit ihrem Laufzeitwert ausgegeben. Du kannst auch ein ganzes Modul mit mehreren Klassen einfügen — jede kommt als eigener Top-Level-Eintrag raus.
So benutzt du es
Drei Schritte. Läuft genauso, egal ob du ein zweizeiliges dict oder ein 300-Zeilen-Modul einfügst.
Python einfügen (oder das Beispiel ausprobieren)
Wirf dein Python so wie es ist in den linken Editor. Ein dict-Literal, eine dataclass-Definition plus Instanz, ein Pydantic-Modell oder mehrere Klassen mit verschachtelten Typen — alles okay. Klick auf Load Sample, wenn du sehen willst, wie eine realistische Eingabe aussieht.
Du musst keine Imports oder Decorators rausschneiden. Lass die PEP 8-Formatierung, die Type Hints und jegliche dataclass-Syntax einfach stehen.
Convert drücken
Klick auf den grünen Convert-Button. Das Tool liest das Python, baut den Objektgraphen und serialisiert ihn genauso wie json.dumps — mit Einrückung zur besseren Lesbarkeit. Während es läuft, erscheint kurz ein Lade-Indikator.
JSON kopieren
Das rechte Panel füllt sich mit schön formatiertem JSON, das gemäß JSON-Spec gültig ist. Kopier es in deinen Request-Body, dein pytest-Fixture, dein FastAPI-OpenAPI-Beispiel oder deine Config-Datei.
Wann das wirklich hilft
API-Request-Fixtures
Du hast ein Pydantic-Request-Modell und brauchst einen Beispiel-JSON-Body für Postman, curl oder ein Swagger-Beispiel. Modell einfügen, JSON nehmen, fertig.
pytest- und Unit-Test-Daten
Konvertiere eine dataclass-Instanz aus deiner Testdatei in eine JSON-Seed-Datei für Integrationstests oder Snapshot-Vergleiche — ohne Custom-Encoder.
Config-Datei gerüstet
Eine settings-dataclass mit ein paar Dutzend Feldern wird zum editierbaren JSON-Template, damit du nicht zum zehnten Mal geschweifte Klammern von Hand tippst.
Docs mit Code synchron halten
Generier JSON-Beispiele für dein README oder deine API-Referenz direkt aus den Modellen, die du eh schon hast — so läuft die Doku dem Code nicht davon.
Häufige Fragen
Funktioniert es mit Pydantic v1 und v2?
Ja, beide werden unterstützt, inklusive Field(alias=...), model_config, Field(default_factory=...) und verschachtelten Modellen. Aliase benennen die Keys in der Ausgabe um — genau so, wie Pydantic selbst es ausgeben würde.
Wie werden datetime, Decimal und UUID behandelt?
datetime, date und time kommen als ISO-8601-Strings raus. Decimal wird zur JSON-Zahl (ohne Anführungszeichen). UUID wird zum Standard-Hex-String. bytes wird base64-kodiert. Das passt zu den Konventionen des Python-json-Moduls, wenn man einen Custom-Encoder einhängt.
Was ist mit Enum, Literal und Optional?
Enum-Mitglieder geben ihren .value aus. Literal["a", "b"] emittiert den String zur Laufzeit. Optional[X]-Felder mit None kommen als JSON-null durch, statt einfach zu verschwinden — so passt die Ausgabeform zu den Type Hints.
Kann ich ein ganzes Modul mit mehreren Klassen einfügen?
Ja. Jede Top-Level-Klasse, die eine Instanz im Modul hat, kommt als eigener Eintrag im JSON raus. Verschachtelte dataclasses und Pydantic-Modelle werden an Ort und Stelle expandiert, und geerbte Felder aus Eltern-Klassen sind auch dabei.
Wird mein Code irgendwo gespeichert?
Der Code wird nur zum Konvertieren ans Backend geschickt. Wir loggen oder speichern ihn nicht. Wie bei jedem Online-Tool gilt: wenn das, was du einfügst, wirklich sensibel ist, schau vorher noch mal drüber.
Und wenn das Python was Komisches hat — Lambdas, Generatoren, File-Handles?
Nicht serialisierbare Werte (Funktionen, Generatoren, offene Sockets) kommen als null raus, statt die ganze Konvertierung zu sprengen. Wenn die Quelle Syntaxfehler hat, behebe die offensichtlichen zuerst — der Parser ist tolerant gegenüber Style-Eigenheiten, kann aber keinen kaputten Code ausführen.
Weitere Tools, die du brauchen könntest
Python zu JSON ist nur ein Puzzle-Teil. Hier die Tools, die gut dazu passen: