Desenvolvedor / Tipos

Conversor de JSON para Python

Transforme um exemplo JSON em dataclasses, definições TypedDict ou modelos Pydantic em Python, com classes aninhadas, campos opcionais e anuláveis e nomes em snake_case.

Conversor de JSON para Python: O conversor lê a estrutura do exemplo: cada objeto se torna uma classe, arrays se tornam list[...] e objetos dentro de um array são mesclados. Assim, uma chave ausente em alguns registros se torna opcional, e uma chave que às vezes é nula se torna "| None". Chaves que não são nomes válidos em Python se tornam snake_case; os modelos Pydantic mantêm a chave original como um alias, e o TypedDict usa sua forma funcional. A saída para vários exemplos complexos foi executada no Python 3.13, com o Pydantic validando o exemplo em relação a ela. Roda 100% localmente no seu navegador, sem enviar nenhum arquivo para o servidor.

Execuções
No seu navegador
Custo
Grátis · sem cadastro
Disponibilidade
Pronto para usar
JSON para PythonProcessamento local

Roda inteiramente no seu navegador

Python

from __future__ import annotations

from dataclasses import dataclass


@dataclass
class Address:
    city: str
    zip_code: str


@dataclass
class User:
    id: int
    user_name: str
    avatar_url: str
    score: float
    tags: list[str]
    address: Address
    manager_id: int | None
    nickname: str | None = None


UserList = list[User]

Escrito para Python 3.10 ou posterior. As chaves ausentes em alguns objetos se tornam opcionais; as chaves que às vezes são null se tornam “| None”. Dataclasses não mapeiam chaves renomeadas de volta para JSON, portanto use Pydantic, que adiciona aliases, quando as chaves não forem nomes válidos em Python.

Dos tipos à validação

As dicas de tipo, sozinhas, não verificam os dados em tempo de execução: json.loads fornece dicts e listas comuns, independentemente do que dizem as anotações. Os modelos do Pydantic validam e convertem os dados durante a análise, com Model.model_validate(data), e informam todos os campos que não correspondem ao esperado.

Para ver o mesmo exemplo em outras linguagens, consulte JSON para TypeScript e JSON para Go; para um contrato independente de linguagem, use JSON para JSON Schema.

Como obter um bom exemplo

Cole vários registros em vez de apenas um, incluindo registros com campos opcionais ou vazios, para que o conversor possa identificar quais chaves estão sempre presentes. Valores que são sempre null ou arrays vazios resultam em Any, que deverá ser preenchido manualmente.

Como usar

  1. Cole um exemplo JSON, de preferência um array com vários registros típicos.
  2. Escolha dataclasses, TypedDict ou Pydantic e dê um nome ao tipo de nível superior.
  3. Copie as classes geradas para o seu projeto.

Privacidade e limitações

O JSON é convertido no seu navegador e nunca é enviado.

Ferramentas relacionadas

Perguntas frequentes

Qual estilo devo usar?

Use Pydantic para validar e analisar dados de uma API, TypedDict para verificar tipos de código que passa dicionários comuns entre funções e dataclasses para objetos internos simples que você mesmo cria.

De qual versão do Python o código precisa?

Python 3.10 ou posterior, por causa da sintaxe X | None; NotRequired em TypedDict exige a versão 3.11 ou o pacote typing_extensions em versões anteriores.

Por que alguns campos têm o tipo Any?

Uma chave que é sempre nula ou um array vazio não fornece nenhuma pista sobre seu tipo; substitua Any pelo tipo real indicado na documentação da sua API.

Ferramenta grátis · no seu navegador execuções · não precisa de conta