Füge links Python ein und klick auf "Convert" — wir machen JSON drausPython-Code einfügen

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.

1

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.

2

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.

3

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: