DT Dev Tools

JSON zu Python Konverter — Klassen generieren

JSON in Python-Dataclasses oder Pydantic-Modelle umwandeln, mit Type Hints, snake_case-Feldern und from_dict/to_dict-Helfern. Kostenlos, privat und im Browser.

🔒 LĂ€uft vollstĂ€ndig in Ihrem Browser — nichts wird hochgeladen

Werbung

Von JSON zu typisierten Python-Klassen

Der Umgang mit rohen Dictionaries ist schnell, bis ein Tippfehler im SchlĂŒsselnamen drei Ebenen tiefer einen KeyError auslöst. Dieser JSON-zu-Python-Konverter erzeugt aus einem JSON-Beispiel typisierte Klassen, sodass Ihr Editor, Ihr Type Checker und Ihr Team genau wissen, was jede Payload enthĂ€lt. Jedes Objekt wird zu einer Klasse mit annotierten Attributen, verschachtelte Objekte werden zu eigenen Klassen, Listen werden nach ihrem Elementtyp typisiert, und Werte, die manchmal fehlen, werden als optional typisiert. JSON-SchlĂŒssel werden in snake_case-Attributnamen umgewandelt, wĂ€hrend der erzeugte Serialisierungscode die ursprĂŒnglichen SchlĂŒssel fĂŒr die Übertragung beibehĂ€lt.

Die Erzeugung ĂŒbernimmt quicktype, das alle Elemente jedes Arrays zusammenfĂŒhrt, bevor es Typen ableitet. Ein Feld, das nur in einigen EintrĂ€gen vorkommt, wird so dennoch erfasst und als optional markiert, statt stillschweigend verworfen zu werden.

Dataclasses, Pydantic und Python-Versionen

StandardmĂ€ĂŸig nutzt die Ausgabe @dataclass-Klassen der Standardbibliothek plus from_dict- und to_dict-Funktionen, die jedes Feld validieren und konvertieren – Sie brauchen also keine FremdabhĂ€ngigkeit. Verwendet Ihr Projekt bereits Pydantic – fĂŒr FastAPI-Request-Bodys, Einstellungen oder Validierung –, aktivieren Sie Pydantic BaseModel, und die Klassen erben stattdessen von BaseModel. Die Auswahl der Python-Version steuert die Typisierungssyntax: 3.10+ erzeugt moderne Annotationen wie list[int] und str | None, Ă€ltere Ziele greifen auf das Modul typing zurĂŒck. Aktivieren Sie Classes only, um die Konvertierungshilfen ganz wegzulassen.

Praktische Tipps

Verwenden Sie ein Beispiel, das optionale Felder abdeckt und mehrere Array-Elemente enthĂ€lt, denn die Typableitung kann nur beschreiben, was sie sieht. Benennen Sie die Root-Klasse nach Ihrer DomĂ€ne – Invoice liest sich besser als Root –, und der Download verwendet diesen Namen. FĂŒhren Sie nach der Erzeugung Ihren Formatter und Type Checker aus (Black, Ruff, mypy oder Pyright) und prĂ€zisieren Sie, was das Beispiel nicht zeigen konnte, etwa Strings, die eigentlich Enums sind, oder Zahlen, die Decimal sein sollten. Parsing und Codeerzeugung laufen lokal ab, daher können Sie ohne Bedenken Antworten mit Kundendaten einfĂŒgen.

So verwenden Sie

  1. JSON einfĂŒgenFĂŒgen Sie ein JSON-Objekt oder -Array ein oder klicken Sie auf Load sample.
  2. Stil wÀhlenWÀhlen Sie Ihre Python-Version und ob Sie Dataclasses oder Pydantic-Modelle möchten.
  3. Klassen kopierenKopieren Sie den erzeugten Code oder laden Sie ihn als .py-Modul herunter.

HĂ€ufig gestellte Fragen

Erzeugt es Dataclasses oder Pydantic-Modelle?
Beides. Die Standardausgabe nutzt @dataclass mit Type Hints; aktivieren Sie Pydantic BaseModel, um stattdessen Pydantic-Modelle zu erhalten.
Welche Python-Versionen werden unterstĂŒtzt?
WĂ€hlen Sie 3.6, 3.7, 3.9 oder 3.10+. Neuere Ziele verwenden eingebaute Generics wie list[str] und die Union-Syntax X | None.
Werden Eigenschaftsnamen in snake_case umgewandelt?
Ja. Feldnamen werden zu pythonischem snake_case, wĂ€hrend die erzeugten Funktionen from_dict und to_dict die ursprĂŒnglichen JSON-SchlĂŒssel beibehalten.
Werden meine Daten hochgeladen?
Nein. Alles lÀuft lokal in Ihrem Browser, sodass private API-Antworten auf Ihrem GerÀt bleiben.
Werbung