JSON na Python dataclass
Převeďte JSON vzorek na typované třídy Python — dataclass, Pydantic, TypedDict nebo NamedTuple.
JSON na Python dataclass
Vložte objekt JSON nebo pole a tento nástroj automaticky určí typ pro každé pole a vygeneruje odpovídající třídy Python s úplnými anotacemi typů. Vyberte si styl výstupu, který vyhovuje vaší kódové základně: klasické @dataclass, Pydantic BaseModel na ověřování a zpracování JSON, TypedDict na typování existujícího kódu založeného na slovnících, nebo NamedTuple pro lehké neměnné záznamy. Vnořené objekty se stanou vlastními třídami, seřazenými v správném pořadí, takže soubor okamžitě funguje; objekty s identickým tvarem — jako každá položka v poli záznamů — znovu používají jednu třídu místo vytvoření duplicitní verze.
Možnosti řídí, zda je generovaný kód konzervativní nebo moderní. Možnost „Optional pro null pole“ změní pole, které bylo null ve vašem vzorku, na typ Optional (nebo Any) místo bezvýznamného pouhého None; „Přidat výchozí hodnoty“ to doplní o „= None“, takže pole lze vynechat při vytváření instance, a povinná pole se automaticky přesunou před pole s výchozími hodnotami podle požadavků syntaxe Python. Možnost „Alias pro neplatné názvy polí“ zpracovává klíče JSON, které nejsou platnými identifikátory Python — klíč s pomlčkou jako „first-name“ se stane atributem first_name, napojen zpět na původní klíč prostřednictvím metadat pole v dataclass nebo Field(alias=...) v Pydantic, takže serializace pokračuje bez ztrát. Možnost „Použít list[T] místo List[T]“ přepíná mezi moderními vestavěnými generiky PEP 585 a starším stylem typing.List, který některé projekty stále vyžadují, a přepínač pro budoucí anotace změní Optional[X]/Union[X, Y] na novější syntaxi X | None / X | Y v celém kódu.
Určování typu rozlišuje řetězce, celá čísla, desetinná čísla a booleovské hodnoty, sjednocuje smíšený obsah polí do jednoho typu Union a dává poli kořenového objektu rozumný název třídy RootItem s aliasem Root = list[RootItem] níže. Protože číslo JSON nemá vlastní značku int/float, číslo bez desetinné čárky se vždy čte jako int — není možné obnovit záměrné „36.0“ po jeho zpracování.
Všechno běží lokálně ve vašem prohlížeči: JSON, který vložíte, obvykle skutečná odpověď API nebo záznam z databáze, se zpracuje a převede, aniž by kdy odešel. Zkopírujte vygenerovaný Python, stáhněte si jej jako soubor .txt, nebo pošlete výstup zpět do vstupu, abyste jej dále vylepšili.