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 hochgeladenVon 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
- JSON einfĂŒgenFĂŒgen Sie ein JSON-Objekt oder -Array ein oder klicken Sie auf Load sample.
- Stil wÀhlenWÀhlen Sie Ihre Python-Version und ob Sie Dataclasses oder Pydantic-Modelle möchten.
- Klassen kopierenKopieren Sie den erzeugten Code oder laden Sie ihn als .py-Modul herunter.
HĂ€ufig gestellte Fragen
Erzeugt es Dataclasses oder Pydantic-Modelle?
@dataclass mit Type Hints; aktivieren Sie Pydantic BaseModel, um stattdessen Pydantic-Modelle zu erhalten.Welche Python-Versionen werden unterstĂŒtzt?
list[str] und die Union-Syntax X | None.Werden Eigenschaftsnamen in snake_case umgewandelt?
from_dict und to_dict die ursprĂŒnglichen JSON-SchlĂŒssel beibehalten.