Omnikit
DesenvolvimentoArquivosFinançasTodas as ferramentas
Ctrl K
Ferramentas para desenvolvedoresFerramentas de arquivosCalculadoras financeirasTodas as ferramentas
InícioFerramentas para desenvolvedoresConversor de JSON para classes Python
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Conversor de JSON para classes Python

desenvolvimento

Transforme uma amostra de JSON em dataclasses, modelos Pydantic ou TypedDicts do Python com type hints

Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum. Verificado em 16 de outubro de 2026.

Cole uma amostra de JSON e receba dataclasses, modelos Pydantic v2 ou TypedDicts do Python com type hints. Números inteiros viram int e qualquer decimal deixa o campo como float; um valor null ou ausente vira str | None com None como padrão, e os 3 estilos de classe usam a mesma inferência.

Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês

Em seguida:
  • JSON to Zod Paste a JSON sample and get a Zod schema with its z.infer type, ready to copy
  • Formatador e validador de JSON Formate, valide, minifique e ordene JSON com a posição exata de cada erro

Como converter JSON em uma classe Python

1

Cole uma amostra de JSON, como a resposta de uma API, na caixa da esquerda.

2

As classes Python aparecem enquanto você digita: uma classe por objeto, com type hints como int, float, list[str] e str | None.

3

Escolha dataclass, Pydantic ou TypedDict, e a tipagem do Python 3.9 se o seu projeto for anterior ao 3.10.

4

Clique em Copiar, ou em Baixar para salvar models.py.

Sobre o Conversor de JSON para classes Python

O Python lê JSON como dicionários, e é uma classe com type hints que permite a um editor, a um verificador de tipos ou ao Pydantic apontar uma chave escrita errado ou um tipo incorreto. Este conversor escreve essas classes a partir de uma amostra, então uma resposta longa de API vira Python tipado com uma só colagem.

Como os tipos são escolhidos.

Valor JSON Tipo Python
"text" str
true / false bool
42 (só números inteiros) int
4.5 (algum decimal visto) float
null, e também um tipo str | None, ou Optional[str]
só null, ou tipos misturados Any
[ ... ] list[...]
{ } vazio dict[str, Any]
{ ... } uma classe própria

Arrays de objetos. Todos os objetos de um array são unidos em uma classe, então uma chave que aparece só em alguns continua lá, com um tipo que aceita None e None como padrão. Dois objetos com exatamente as mesmas chaves e tipos compartilham uma classe.

Três estilos. Uma dataclass não precisa de nada instalado; campos com padrão vão para depois dos outros, porque senão o Python gera um TypeError. Modelos Pydantic usam atributos em snake_case com Field(alias=...) para chaves escritas de outro jeito, como userName ou first-name. Um TypedDict mantém as chaves exatamente e marca como NotRequired as que aparecem só às vezes.

Ordem e nomes. As classes são escritas começando pelas filhas, assim todo nome é definido antes de ser usado. Uma palavra reservada como class vira class_, e uma chave que esconderia um tipo, como list, ganha o mesmo sublinhado.

Cada estilo foi verificado executando o resultado no CPython com Pydantic 2 e validando a amostra. Nada do que você cola sai do navegador.

Perguntas frequentes

Como converto JSON em uma classe Python?

Cole uma amostra de JSON no conversor e as classes Python aparecem ao lado, uma por objeto, com um type hint em cada atributo. Escolha dataclass para classes simples, Pydantic para validação ou TypedDict para continuar trabalhando com dicionários comuns, e copie o módulo para o seu projeto.

Devo usar uma dataclass, um modelo Pydantic ou um TypedDict?

Uma dataclass serve para dados que você mesmo monta e não precisa de biblioteca. O Pydantic serve para dados de fora, como respostas de API, porque confere cada valor e converte os objetos aninhados para você. Um TypedDict só acrescenta type hints ao dicionário que json.loads devolve, então não custa nada em tempo de execução.

Como são tratadas chaves JSON como userName ou first-name?

Os atributos do Pydantic são escritos em snake_case, como pede a PEP 8, com Field(alias="userName") para que a validação continue lendo a chave original. Um TypedDict mantém cada chave exatamente e passa para a sintaxe funcional quando uma chave não é um nome válido. Uma dataclass mantém as chaves que são nomes válidos e anota o restante.

Por que um campo tem o tipo str | None ou Optional[str]?

Uma chave que era null na amostra, ou que falta em alguns objetos de um array, pode conter None, então o type hint permite isso. Chaves ausentes também recebem None como padrão, e numa dataclass esses campos vão para o final, porque o Python recusa um campo sem padrão depois de um campo com padrão.

Qual versão do Python o resultado exige?

A tipagem padrão, como list[str] e str | None, exige Python 3.10 ou mais recente. Ative a tipagem do Python 3.9 para receber Optional e List do módulo typing. O NotRequired do TypedDict vem de typing_extensions e está no próprio typing a partir do Python 3.11.

Meu JSON é enviado?

Não. A conversão roda no seu navegador sem nenhuma requisição a um servidor, e o JSON não é guardado, então respostas de API com tokens ou dados pessoais ficam no seu dispositivo. Feche a aba e nada fica para trás.

Fontes

  • Python documentation, dataclassesField order rule: no field without a default after one with a default
  • Python documentation, typing.TypedDict and NotRequiredClass and functional syntax, keys that may be missing
  • PEP 8, naming conventionsCapWords class names, snake_case attributes, a trailing underscore after a keyword
  • Pydantic documentation, fields and aliasesField(alias=...) to read a JSON key into another attribute name

Última verificação: 16 de outubro de 2026.

Taxas e regras mudam; confira a fonte antes de confiar em um valor.

Ainda com dúvidas? Pergunte sobre Conversor de JSON para classes Python e qualquer pessoa que saiba pode responder. Não é preciso ter conta.

Ferramentas relacionadas

Todas as ferramentas para desenvolvedores
Codificar e decodificar Base64Texto e arquivos para Base64 e de volta, com modo seguro para URL e prévia de imagensConversor de timestamp UnixTimestamps Unix em datas e datas em timestamps, em qualquer fuso horárioJSON para TypeScriptGere interfaces ou tipos TypeScript a partir de uma amostra JSONConverter CSV para JSONConverta CSV para JSON e JSON para CSV, com prévia em tabelaConverter YAML para JSONConverta YAML para JSON e JSON para YAML, com as âncoras resolvidasCodificador e decodificador de URLCodifique ou decodifique texto e URLs com codificação percentual e veja cada parte de um linkConversor de bases numéricasBinário, octal, decimal, hexadecimal e qualquer base até 36, exato em qualquer tamanho, com complemento de doisColor ConverterHEX, RGB, HSL, HWB, OKLCH and CMYK in both directions, with a contrast check
Esta ferramenta foi útil?
Omnikit

Pequenas tarefas, feitas no seu navegador. Grátis, rápido e privado. Os arquivos nunca são enviados.

Arquivos

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Desenvolvimento

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Finanças

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuiasPerguntasSobreComo verificamosBiblioteca de leis (beta)PrivacidadeTermosDivulgaçãoContatoMore: Exam practice (UGC NET Paper 1)Funciona no seu navegador. Nada é enviado. © 2026 Omnikit (theomnikit.com)