JSON v razred podatkov Python
Pretvorite vzorec JSON v tipizirane razrede Python — dataclass, Pydantic, TypedDict ali NamedTuple.
JSON v razred podatkov Python
Prilepite objekt JSON ali polje in to orodje samodejno ugotovi tip za vsako polje ter ustvari ustrezne razrede Python s polnimi opombami tipov. Izberite slog rezultata, ki se ujema z vašo kodno bazo: navadni @dataclass, Pydantic BaseModel za validacijo zahtevkov in odgovorov, TypedDict za tipiziranje obstoječe kode na osnovi slovarjev ali NamedTuple za lahke nespreminjive zapise. Ugnezdeni objekti postanejo lastni razredi, definirani v pravem vrstnem redu, tako da se datoteka takoj izvede; enako oblikovani objekti — kot vsak element v polju zapisov — ponovno uporabijo en razred namesto ustvarjanja duplikata za vsak element.
Možnosti nadzorujejo, ali je ustvarjena koda bolj konzervativna ali sodobna. Možnost „Opciono za null polja“ pretvori polje, ki je bilo null v vašem vzorcu, v tip Optional (ali Any) namesto neuporabnega samega None; „Dodaj privzete vrednosti“ to dopolni z „= None“, tako da polje lahko izpustite pri ustvarjanju primerka, obvezna polja pa se samodejno premaknejo pred polja s privzetimi vrednostmi, kadar to zahteva Python skladnja. Možnost „Psevdonim za neveljavna imena polj“ upravlja ključe JSON, ki niso veljavni identifikatorji Python — ključ s pomišljajem kot „first-name“ postane atribut first_name, ponovno povezan na originalni ključ preko metapodatkov polja v dataclass ali Field(alias=...) v Pydantic, tako da serijalizacija deluje pravilno. Možnost „Uporabi list[T] namesto List[T]“ preklanja med sodobnimi vgrajenim stiski generikov PEP 585 in starejšim slogom typing.List, ki ga nekateri projekti še potrebujejo, preklopka za prihodnje opombe pa pretvori Optional[X]/Union[X, Y] v novejšo sintakso X | None / X | Y po vsem kodu.
Sklepanje tipov loči nize, cela števila, plavajoča števila in logične vrednosti, meša mešano vsebino polja v en tip Union in daje polju root objektov razumno ime razreda RootItem z imenovakom Root = list[RootItem] spodaj. Ker številka JSON nima lastne oznake int/float, se število brez decimalne točke vedno prebere kot int — ni načina za obnovitev namerne „36.0“ po obdelavi.
Vse se izvaja lokalno v vašem brskalniku: JSON, ki ga prilepite, pogosto pravi odgovor API ali zapis iz baze podatkov, se obdela in pretvori brez pošiljanja nekam. Kopirajte ustvarjene Python, ga preuzmite kot datoteko .txt ali pošljite rezultat nazaj v vnos, da ga še naprej izboljšate.