JSON in Python Dataclass
Python-Dataclasses mit Type-Hints aus JSON generieren. Kostenlos, in deinem Browser.
Wofür es gedacht ist
JSON zu Python-Dataclass mit Type-Hints
Kompatibel mit Python 3.7+
Der generierte Code verwendet das Standardbibliotheks-Modul dataclasses. Keine externen Abhängigkeiten - funktioniert in jeder modernen Python-Umgebung.
100% privat
Dein JSON wird im Browser verarbeitet. Nie an Server gesendet. Sicher für interne API-Daten oder vertrauliche Datenmodelle.
Korrekte Type-Hints
Präzise Typableitung: str, int, float, bool, List, Optional und verschachtelte Dataclasses mit passenden Namen und Typen generiert.
Sofortig
Echtzeit-Generierung während du tippst oder JSON einfügst. Kein Warten, keine Server-Aufrufe.
So funktioniert es
Drei Schritte, kein Aufwand
Dein JSON einfügen
Gib das JSON ein, das du konvertieren möchtest. Es kann eine API-Antwort, eine Konfigurationsdatei oder eine beliebige gültige JSON-Struktur sein.
Deine Python-Dataclass erhalten
Das Tool generiert eine Python-Klasse mit dem Dekorator @dataclass und abgeleiteten Type-Hints (str, int, float, bool, list, verschachtelte Dataclass) für jedes Feld.
Kopieren und ins Projekt importieren
Kopiere den generierten Code in dein Python-Modul. Du musst nur dataclass aus dem Standardbibliotheks-Modul dataclasses importieren.
FAQ
Noch Fragen?
Dataclasses sind Python-Klassen, die hauptsächlich zum Speichern von Daten dienen und in Python 3.7 über PEP 557 eingeführt wurden. Der Dekorator @dataclass generiert automatisch Methoden wie __init__, __repr__ und __eq__ auf Basis der mit Type-Hints deklarierten Felder. Sie sind die moderne Alternative zur manuellen Definition von Klassen mit repetitiven __init__-Methoden und bieten saubereren, lesbaren Code ohne externe Abhängigkeiten wie Pydantic.
Ein Python-Dict hat keine definierten Typen, akzeptiert beliebige Schlüssel und Werte und bietet keine IDE-Autovervollständigung. Eine Dataclass definiert die Struktur explizit mit Type-Hints, ermöglicht Feldzugriff per Punkt-Notation (obj.field statt obj['field']), generiert automatisch Vergleichs- und Darstellungsmethoden und erlaubt IDEs sowie statischen Analysetools wie mypy und Pyright, Typfehler vor der Ausführung zu finden.
Das Tool analysiert JSON-Werte, um den passendsten Python-Typ abzuleiten: Textstrings werden zu str, ganze Zahlen zu int, Dezimalzahlen zu float, Boolesche Werte zu bool, Arrays zu List[T] mit abgeleitetem Elementtyp T, und verschachtelte Objekte werden zu neuen Dataclasses. Null-Werte werden zu Optional[T] mit Standardwert None.
Ja. Enthält das JSON Objekte innerhalb von Objekten, generiert das Tool für jede Verschachtelungsebene eine separate Dataclass. Die Klassen werden im Code korrekt geordnet, sodass jede Dataclass definiert ist, bevor auf sie verwiesen wird. Zum Beispiel generiert {"user": {"name": "Alice", "age": 30}} sowohl eine Dataclass User als auch die übergeordnete Dataclass, die sie enthält.
Felder mit null-Werten im Beispiel-JSON werden in der Dataclass als Optional[T] = None generiert. Das signalisiert, dass das Feld zur Laufzeit fehlen oder None sein kann. Für die Verwendung von Optional musst du es aus typing importieren (Python unter 3.10) oder die Syntax T | None verwenden (Python 3.10+). Das Tool generiert Code, der mit Python 3.7+ kompatibel ist.
Python-Type-Hints: Entwicklung von PEP 484 zu Dataclasses und Vergleich mit Pydantic
Type-Hints in Python wurden durch PEP 484 in Python 3.5 (2015) eingeführt. Davor war Python dynamisch typisiert und statische Analysetools konnten Typen nicht überprüfen. PEP 526 (Python 3.6) fügte Variablen-Annotationen hinzu, und PEP 557 (Python 3.7) führte Dataclasses ein, die Type-Hints als Felddeklarationen verwenden. Diese Entwicklung machte Python zu einer Sprache, die sowohl dynamisches Verhalten als auch statische Typprüfung nutzen kann.
Das Standardbibliotheks-Modul dataclasses generiert automatisch __init__, __repr__ und __eq__. Für fortgeschrittenere Bedürfnisse wie Datenvalidierung, automatische Serialisierung/Deserialisierung und JSON-Schema-Kompatibilität ist Pydantic (v1 und v2) die beliebteste Alternative. FastAPI verwendet Pydantic zur automatischen Validierung von HTTP-Request-Bodies. Für die meisten internen Datenmodellierungsanwendungsfälle reichen Standard-Dataclasses jedoch aus und benötigen keine externen Abhängigkeiten.
Der Übergang von Python 2 zu 3 und die Einführung von Type-Hints haben das Ökosystem verändert. Tools wie mypy (Dropbox), Pyright (Microsoft) und Pylance (VS Code) führen statische Typanalysen durch. In großen Projekten reduzieren Type-Hints typbezogene Bugs in der Produktion erheblich. Das Generieren von Dataclasses aus dem JSON externer APIs oder Datenbank-Schemas ist eine gängige Praxis, um wartbaren und verifizierbaren Python-Code zu erhalten.