DT Dev Tools

JSON till Python — Generera klasser

Konvertera JSON till Python-dataclasses eller Pydantic-modeller med typhintar, snake_case-fÀlt och from_dict/to_dict. Gratis, privat och körs i webblÀsaren.

🔒 Körs helt i din webblĂ€sare — ingenting laddas upp

Annons

FrÄn JSON till typade Python-klasser

Att arbeta med rÄa dictionaries gÄr snabbt tills ett stavfel i ett nyckelnamn orsakar ett KeyError tre lager ner. Den hÀr JSON till Python-konverteraren genererar typade klasser frÄn ett JSON-exempel, sÄ att din editor, typkontroll och dina kollegor vet exakt vad varje payload innehÄller. Varje objekt blir en klass med annoterade attribut, nÀstlade objekt blir egna klasser, listor typas efter sin elementtyp och vÀrden som ibland saknas typas som valfria. JSON-nycklar konverteras till attributnamn i snake_case, medan den genererade serialiseringskoden behÄller de ursprungliga nycklarna i dataformatet.

Genereringen sköts av quicktype, som slÄr ihop alla element i varje array innan typerna infereras. Ett fÀlt som bara förekommer i vissa objekt fÄngas dÀrför ÀndÄ och markeras som valfritt i stÀllet för att tyst försvinna.

Dataclasses, Pydantic och Python-versioner

Som standard anvĂ€nder resultatet @dataclass-klasser ur standardbiblioteket samt funktionerna from_dict och to_dict, som validerar och konverterar varje fĂ€lt, sĂ„ du behöver inget tredjepartsberoende. Om ditt projekt redan anvĂ€nder Pydantic — för FastAPI-request bodies, instĂ€llningar eller validering — markerar du Pydantic BaseModel, och klasserna Ă€rver dĂ„ frĂ„n BaseModel. VĂ€ljaren för Python-version styr typsyntaxen: 3.10+ ger moderna annoteringar som list[int] och str | None, medan Ă€ldre mĂ„l faller tillbaka pĂ„ modulen typing. Markera Classes only för att hoppa över konverteringshjĂ€lparna helt.

Praktiska tips

AnvĂ€nd ett exempel som tar med valfria fĂ€lt och innehĂ„ller flera arrayelement, eftersom inferensen bara kan beskriva det den ser. Döp rotklassen efter din domĂ€n — Invoice lĂ€ses bĂ€ttre Ă€n Root — sĂ„ anvĂ€nder nedladdningen det namnet. Efter genereringen kör du din formaterare och typkontroll (Black, Ruff, mypy eller Pyright) och skĂ€rper till sĂ„dant som exemplet inte kunde visa, till exempel strĂ€ngar som egentligen Ă€r enums eller tal som borde vara Decimal. All tolkning och kodgenerering sker lokalt, sĂ„ du kan tryggt klistra in svar som innehĂ„ller kunddata.

Hur man anvÀnder

  1. Klistra in JSONKlistra in ett JSON-objekt eller en array, eller klicka pÄ Load sample.
  2. VĂ€lj stilVĂ€lj Python-version och om du vill ha dataclasses eller Pydantic-modeller.
  3. Kopiera klassernaKopiera den genererade koden eller ladda ner den som en .py-modul.

Vanliga frÄgor

Genereras dataclasses eller Pydantic-modeller?
BÄda. Standardresultatet anvÀnder @dataclass med typhintar; markera Pydantic BaseModel för att fÄ Pydantic-modeller i stÀllet.
Vilka Python-versioner stöds?
VÀlj 3.6, 3.7, 3.9 eller 3.10+. Nyare mÄl anvÀnder inbyggda generiska typer som list[str] och unionssyntaxen X | None.
Konverteras egenskapsnamnen till snake_case?
Ja. FÀltnamnen blir pytoniska snake_case, medan de genererade funktionerna from_dict och to_dict behÄller de ursprungliga JSON-nycklarna.
Laddas mina data upp?
Nej. Allt körs lokalt i din webblÀsare, sÄ privata API-svar stannar pÄ din enhet.
Annons