DT Dev Tools

Konwerter JSON na Python — Generator klas

Konwertuj JSON na dataclasses Pythona lub modele Pydantic z podpowiedziami typów, polami snake_case i from_dict/to_dict. Za darmo, prywatnie, w przeglądarce.

🔒 Działa całkowicie w Twojej przeglądarce — nic nie jest przesyłane

Reklama

Od JSON do typowanych klas Pythona

Praca na surowych słownikach jest szybka, dopóki literówka w nazwie klucza nie wywoła KeyError trzy warstwy głębiej. Ten konwerter JSON na Python generuje typowane klasy z przykładu JSON, dzięki czemu Twój edytor, mechanizm sprawdzania typów i koledzy z zespołu dokładnie wiedzą, co zawiera każdy ładunek danych. Każdy obiekt staje się klasą z opisanymi atrybutami, zagnieżdżone obiekty stają się własnymi klasami, listy są typowane według typu elementu, a wartości, które czasem nie występują, są typowane jako opcjonalne. Klucze JSON są zamieniane na nazwy atrybutów w snake_case, podczas gdy wygenerowany kod serializacji zachowuje oryginalne klucze w przesyłanych danych.

Generowanie obsługuje quicktype, który łączy wszystkie elementy każdej tablicy, zanim wywnioskuje typy. Pole występujące tylko w części elementów jest więc nadal uwzględniane i oznaczane jako opcjonalne, zamiast po cichu znikać.

Dataclasses, Pydantic i wersje Pythona

Domyślnie wynik używa klas @dataclass z biblioteki standardowej oraz funkcji from_dict i to_dict, które walidują i konwertują każde pole, więc nie potrzebujesz żadnej zewnętrznej zależności. Jeśli Twój projekt już korzysta z Pydantic — dla treści żądań FastAPI, ustawień lub walidacji — zaznacz Pydantic BaseModel, a klasy będą dziedziczyć po BaseModel. Selektor wersji Pythona określa składnię typów: 3.10+ daje nowoczesne adnotacje list[int] i str | None, a starsze wersje wracają do modułu typing. Zaznacz Classes only, aby całkowicie pominąć funkcje pomocnicze konwersji.

Praktyczne wskazówki

Użyj przykładu, który zawiera pola opcjonalne i kilka elementów tablicy, ponieważ wnioskowanie potrafi opisać tylko to, co widzi. Nazwij klasę główną zgodnie z Twoją domeną — Invoice czyta się lepiej niż Root — a pobrany plik użyje tej nazwy. Po wygenerowaniu uruchom formater i narzędzie do sprawdzania typów (Black, Ruff, mypy lub Pyright) i doprecyzuj to, czego przykład nie mógł pokazać, np. ciągi znaków będące w rzeczywistości enumami albo liczby, które powinny być typu Decimal. Całe parsowanie i generowanie kodu odbywa się lokalnie, więc możesz bezpiecznie wklejać odpowiedzi zawierające dane klientów.

Jak używać

  1. Wklej JSONWklej obiekt lub tablicę JSON albo kliknij Load sample.
  2. Wybierz stylWybierz wersję Pythona oraz to, czy chcesz dataclasses, czy modele Pydantic.
  3. Skopiuj klasySkopiuj wygenerowany kod lub pobierz go jako moduł .py.

Najczęściej zadawane pytania

Czy generuje dataclasses, czy modele Pydantic?
Jedno i drugie. Domyślny wynik używa @dataclass z podpowiedziami typów; zaznacz Pydantic BaseModel, aby zamiast tego otrzymać modele Pydantic.
Jakie wersje Pythona są obsługiwane?
Wybierz 3.6, 3.7, 3.9 lub 3.10+. Nowsze wersje używają wbudowanych typów generycznych, takich jak list[str], oraz składni unii X | None.
Czy nazwy właściwości są zamieniane na snake_case?
Tak. Nazwy pól stają się pythonowym snake_case, a wygenerowane funkcje from_dict i to_dict zachowują oryginalne klucze JSON.
Czy moje dane są przesyłane?
Nie. Wszystko działa lokalnie w Twojej przeglądarce, więc prywatne odpowiedzi API pozostają na Twoim urządzeniu.
Reklama