Gerador de Modelos Pydantic a partir de JSON

Gere classes de modelo Pydantic v2 a partir de um JSON de exemplo instantaneamente no seu navegador. Seu JSON fica no seu dispositivo.

Seu JSON é analisado e convertido em modelos Pydantic inteiramente no seu navegador, então ele permanece no seu dispositivo e nada é enviado para um servidor.

Precisa de tipos Go, Rust ou TypeScript? Experimente o JSON para Código.

Sobre JSON para Pydantic

Este gerador de json para pydantic transforma um objeto ou array JSON de exemplo em classes de modelo Pydantic v2 prontas para uso em segundos. Cole uma resposta de API real e ele infere o tipo de cada campo, str, int, float e bool, marca campos anuláveis como Optional, unifica arrays em tipos list[...] e promove cada objeto aninhado ao seu próprio BaseModel referenciado por nome. Chaves que não são identificadores Python válidos são mantidas via Field(alias=...) para que o modelo ainda analise seu payload original. Foi feito para desenvolvedores Python e FastAPI que preferem gerar modelos pydantic a partir de json a escrevê-los à mão enquanto montam um cliente tipado. Tudo roda localmente no seu navegador, então o JSON que você cola é processado no seu dispositivo e nada é enviado para um servidor.

Recursos

Como usar JSON para Pydantic

  1. Cole seu objeto ou array JSON na caixa de entrada.
  2. Defina o nome do modelo raiz para combinar com o seu schema, ou deixe como Model.
  3. Revise as classes Pydantic geradas no painel de saída.
  4. Copie o resultado ou baixe-o como um arquivo .py.

Exemplo

Entrada

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

Saída

from pydantic import BaseModel


class Address(BaseModel):
    city: str


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

Um objeto aninhado vira seu próprio BaseModel, com a classe raiz por último.

Erros comuns e solução de problemas

Perguntas frequentes

Ele gera modelos Pydantic v2?
Sim. A saída tem como alvo a sintaxe do Pydantic v2: cada modelo é uma classe que estende BaseModel, com campos anotados e Field(alias=...) onde uma chave JSON não é um identificador Python válido.
Como os objetos aninhados são tratados?
Cada objeto aninhado vira sua própria classe BaseModel, nomeada em PascalCase a partir da chave proprietária, e o pai a referencia por tipo. As classes são emitidas em ordem de dependência, com o modelo raiz por último.
Como ele mapeia os tipos JSON para tipos Python?
Strings viram str, números inteiros viram int, decimais viram float, booleanos viram bool, null produz Optional, arrays viram list[...] com um tipo de elemento unificado, e objetos viram BaseModels aninhados.
O que acontece com chaves que não são nomes Python válidos?
Uma chave como first-name ou 2fa, ou uma palavra reservada como class, é exposta sob um atributo snake_case seguro e a chave original é preservada com Field(alias="...") para que o modelo ainda analise seu payload.
Como arrays e arrays vazios são convertidos?
Arrays viram list[...] usando o tipo unificado dos seus elementos, incluindo um BaseModel aninhado para arrays de objetos. Um array vazio não tem tipo de elemento para inferir, então vira list[Any].
Meu JSON é enviado para algum lugar quando gero modelos Pydantic?
Não. A conversão de JSON para Pydantic roda inteiramente no seu navegador, então os dados que você cola são processados localmente e nunca saem do seu dispositivo.

Ferramentas relacionadas

Todas as ferramentas de ArrayKit