JSON в Python

Генерация dataclass, моделей Pydantic или TypedDict на Python из JSON

Ввод JSON

Параметры

Модель

Вывод Python

Вставьте JSON или загрузите пример, чтобы сгенерировать код Python.

Что генерирует JSON to Python

JSON to Python превращает ответ API или любой пример JSON в определения типов Python. Режим Dataclass создаёт классы @dataclass и метод класса from_dict, потому что Root(**data) не строит вложенные dataclass и не сопоставляет переименованные ключи. Режим Pydantic v2 создаёт классы BaseModel и добавляет Field(alias="original-key") и populate_by_name только там, где имя меняется. Режим TypedDict сохраняет точные ключи JSON и переходит на функциональный синтаксис TypedDict("Name", {...}), если ключ не является допустимым идентификатором.

Как использовать
  1. 1.Вставьте JSON, загрузите или перетащите файл .json либо загрузите один из примеров.
  2. 2.Задайте имя корневого типа. Если корень JSON — массив объектов, это имя получает тип элемента, а RootList добавляется как псевдоним.
  3. 3.Выберите Dataclass, Pydantic v2 или TypedDict и решите, использовать ли snake_case для атрибутов.
  4. 4.Прочитайте заметки под выводом, затем скопируйте код или скачайте models.py.
Как выводятся типы
  • •Проверяется каждый элемент массива, а не только первый, и объекты одного массива объединяются.
  • •Ключ, отсутствующий в части объектов, необязателен; ключ, который иногда равен null, допускает null. Эти случаи различаются.
  • •1 и 2.5 в одной позиции расширяются до дробного числа; о других смешениях выводится заметка.
  • •Пустые массивы и значения, которые всегда равны null, не дают сведений о типе, поэтому используется обобщённый тип, а заметка объясняет причину.
  • •Сопоставление типов: строка → str, целое число → int, дробное число → float, логическое значение → bool, массив → list[T], объект → вложенный класс, неизвестно → Any, встречен null → T | None.
  • •Зарезервированные слова превращаются в class_, ключи, начинающиеся с цифры, получают префикс field_, а совпадающие имена — суффикс _2.
Ограничения и конфиденциальность

Пример показывает, как данные выглядели один раз, а не полный контракт API. Проверьте необязательные поля, обобщённые типы и разрядность чисел, прежде чем полагаться на код. Ввод ограничен 5 МБ и 256 уровнями вложенности; начиная с 2 МБ генерация ждёт нажатия кнопки «Сгенерировать». Всё выполняется в браузере, JSON никуда не загружается. Сгенерированный код использует синтаксис объединений Python 3.10+; режиму TypedDict с NotRequired нужен Python 3.11 или typing_extensions.

CodingTool официально запущен на

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch