Du bist offline. Tools, die du schon einmal geöffnet hast, funktionieren weiter.
JSON in Python-Klassen umwandeln
Füge JSON ein und du bekommst Python-Dataclasses, Pydantic-Modelle oder TypedDict-Definitionen mit vollständigen Type Hints. Optionale Felder haben None als Standardwert, und Schlüssel werden in snake_case umgewandelt.
Kostenlos und privat. Alles läuft in deinem Browser, nichts wird hochgeladen.
Problem melden
So funktioniert es
JSON einfügenFüge eine Antwort deiner API ein oder öffne eine .json-Datei. Mit Beispiel siehst du, wie es aussieht.
Optionen anpassenLeg den Namen des obersten Typs und die Optionen für diese Sprache fest. Der Code aktualisiert sich beim Tippen.
Kopieren oder herunterladenKopiere den Code in dein Projekt oder lade ihn als Datei herunter.
Drei Stile für drei Aufgaben
Dataclasses gehören zur Standardbibliothek und passen gut zu internen Daten. Pydantic-Modelle prüfen und konvertieren Daten beim Laden, und der Generator ergänzt Field(alias=...), sobald der Python-Name vom JSON-Schlüssel abweicht, damit model_validate die Originaldaten liest. TypedDict beschreibt nur die Struktur eines Dictionarys, praktisch, wenn du direkt mit der Ausgabe von json.loads weiterarbeitest; Schlüssel, die keine gültigen Python-Namen sind, nutzen die funktionale TypedDict-Syntax.
Optionale Felder werden ans Ende jeder Dataclass verschoben, weil Python verlangt, dass Felder mit Standardwert nach den anderen kommen. Die Typen nutzen die moderne Form list[...], daher braucht der Code Python 3.9 oder neuer; NotRequired in TypedDict braucht Python 3.11 oder typing_extensions.
Häufige Fragen
Warum beginnt der Code mit from __future__ import annotations?
So können sich Klassen in beliebiger Reihenfolge gegenseitig referenzieren, und die Annotationen bleiben so, wie sie geschrieben sind. Mit Dataclasses und Pydantic 2 ist das unbedenklich.
Wird mein JSON irgendwohin hochgeladen?
Nein. Die Typen werden in deinem Browser erzeugt. API-Antworten mit Kundendaten oder Schlüsseln verlassen dein Gerät nie.
Wie werden optionale Felder erkannt?
Enthält das JSON eine Liste von Objekten, wird jedes Objekt verglichen. Ein Feld, das in mindestens einem Objekt fehlt, wird als optional markiert. Bei einem einzelnen Objekt gilt jedes Feld als Pflichtfeld.
Was passiert mit Feldern, die immer null sind?
Der Typ lässt sich aus dem Beispiel nicht ablesen, deshalb bekommt das Feld einen allgemeinen Typ wie unknown, object, Any oder JsonElement. Füge ein Beispiel hinzu, in dem das Feld einen Wert hat, dann wird der Typ genau.
Warum wird meine 1.0 als Dezimalzahl typisiert?
Das Tool schaut, wie die Zahl geschrieben ist. 1.0 oder 2.5 werden zu double oder float, 1 wird zur Ganzzahl. Ist ein Feld in manchen Einträgen ganzzahlig und in anderen dezimal, wird der Dezimaltyp verwendet.
Kann ich das Ergebnis in Produktivcode verwenden?
Ja, der Code lässt sich in den üblichen Setups direkt kompilieren. Prüf Namen und Typen, bevor du ihn eincheckst, denn ein Beispiel kann nie alle möglichen Werte zeigen.
Funktioniert es auch offline?
Ja. Nachdem du die Seite einmal geöffnet hast, funktioniert sie auch ohne Internetverbindung.
Leg die Datei ab, um zu sehen, was du damit machen kannst