Генератор моделей Pydantic из JSON

Сгенерируйте классы моделей Pydantic v2 из образца JSON мгновенно в браузере. Ваш JSON остаётся на устройстве.

Ваш JSON разбирается и преобразуется в модели Pydantic полностью в вашем браузере, поэтому остаётся на устройстве и ничего не загружается на сервер.

Нужны типы Go, Rust или TypeScript? Попробуйте JSON в код.

Об инструменте JSON в Pydantic

Этот генератор JSON в Pydantic превращает образец объекта или массива JSON в готовые к использованию классы моделей Pydantic v2 за секунды. Вставьте реальный ответ API, и он выведет тип каждого поля — str, int, float и bool, пометит nullable-поля как Optional, объединит массивы в типы list[...] и продвинет каждый вложенный объект в собственный BaseModel, на который ссылается по имени. Ключи, не являющиеся допустимыми идентификаторами Python, сохраняются через Field(alias=...), чтобы модель по-прежнему разбирала вашу исходную структуру данных. Он создан для разработчиков на Python и FastAPI, которые предпочитают генерировать модели pydantic из json, а не писать их вручную при подключении типизированного клиента. Всё работает локально в вашем браузере, поэтому вставленный JSON обрабатывается на вашем устройстве и ничего не загружается на сервер.

Возможности

Как использовать JSON в Pydantic

  1. Вставьте ваш объект или массив JSON в поле ввода.
  2. Задайте имя корневой модели под вашу структуру данных или оставьте его как Model.
  3. Просмотрите сгенерированные классы Pydantic на панели вывода.
  4. Скопируйте результат или скачайте его в виде файла .py.

Пример

Ввод

{ "id": 1, "name": "Ada", "address": { "city": "London" } }

Результат

from pydantic import BaseModel


class Address(BaseModel):
    city: str


class Model(BaseModel):
    id: int
    name: str
    address: Address

Вложенный объект становится собственным BaseModel, а корневой класс идёт последним.

Частые ошибки и устранение неполадок

Часто задаваемые вопросы

Генерирует ли он модели Pydantic v2?
Да. Вывод нацелен на синтаксис Pydantic v2: каждая модель — это класс, наследующий BaseModel, с аннотированными полями и Field(alias=...) там, где ключ JSON не является допустимым идентификатором Python.
Как обрабатываются вложенные объекты?
Каждый вложенный объект становится собственным классом BaseModel, названным в PascalCase по владеющему ключу, а родитель ссылается на него по типу. Классы выдаются в порядке зависимостей, а корневая модель идёт последней.
Как он сопоставляет типы JSON с типами Python?
Строки становятся str, целые числа становятся int, десятичные — float, булевы значения — bool, null порождает Optional, массивы становятся list[...] с унифицированным типом элемента, а объекты становятся вложенными BaseModel.
Что происходит с ключами, которые не являются допустимыми именами Python?
Ключ вроде first-name или 2fa, либо зарезервированное слово вроде class, доступен под безопасным атрибутом в snake_case, а исходный ключ сохраняется через Field(alias="..."), чтобы модель по-прежнему разбирала вашу структуру данных.
Как преобразуются массивы и пустые массивы?
Массивы становятся list[...] с использованием унифицированного типа их элементов, включая вложенный BaseModel для массивов объектов. У пустого массива нет типа элемента для вывода, поэтому он становится list[Any].
Отправляется ли куда-либо мой JSON при генерации моделей Pydantic?
Нет. Преобразование JSON в Pydantic выполняется полностью в вашем браузере, поэтому вставленные данные обрабатываются локально и никогда не покидают устройство.

Связанные инструменты

Все инструменты ArrayKit