Conversor Python para JSON
Cole dicts Python, dataclasses ou modelos Pydantic. Receba um JSON limpo de volta.
O que essa ferramenta faz
Se você já teve que transformar um dict Python ou uma dataclass em um payload JSON pra chamada de API, fixture de teste ou um trechinho de documentação, sabe que isso fica chato rapidinho — aspas precisam ser trocadas, True/False viram true/false, None vira null, e valores datetime/Decimal têm que ser serializados na mão. Cola o Python aqui e recebe um JSON válido idêntico ao que um json.dumps ou uma chamada .model_dump_json() do Pydantic produziriam — sem você precisar escrever o código de cola.
Não é só um replace de string. O conversor entende o que o Python realmente faz na hora da serialização: strings com aspas simples viram aspas duplas, tuples colapsam em arrays JSON, set e frozenset também viram arrays, datetime e date saem como strings ISO-8601 conforme a RFC 8259, Decimal cai para número, e membros de Enum emitem seu .value. Objetos aninhados são expandidos no lugar, então uma dataclass contendo uma lista de outras dataclasses faz o round-trip sem ruído.
Modelos Pydantic (v1 e v2) são suportados. Aliases de campo definidos via Field(alias=...) renomeiam as chaves na saída, campos Optional que estão como None são preservados como null, e tipos Literal/Union são emitidos com seu valor em runtime. Pode colar um módulo inteiro com várias classes — cada uma sai como uma entrada de nível superior.
Como usar
Três passos. Funciona igual pra um dict de duas linhas ou um módulo de 300 linhas.
Cole seu Python (ou teste o exemplo)
Joga seu Python no editor da esquerda, do jeito que está. Um literal dict, uma definição de dataclass com instância, um modelo Pydantic ou várias classes com tipos aninhados — tudo funciona. Clica em Load Sample se quiser ver como fica uma entrada realista.
Não precisa tirar os imports nem os decorators. Deixe a formatação PEP 8, as type hints e qualquer sintaxe de dataclass como estão.
Aperta o Convert
Clica no botão verde Convert. A ferramenta lê o Python, monta o grafo de objetos e serializa do mesmo jeito que o json.dumps faria — com indentação pra ficar legível. Um indicador de loading aparece rapidinho enquanto roda.
Copia o JSON
O painel da direita preenche com um JSON bonitinho, válido conforme a especificação JSON. Cola no corpo da requisição, na fixture do pytest, no exemplo OpenAPI do FastAPI ou no arquivo de config.
Quando isso realmente salva
Fixtures de requisição de API
Você tem um modelo de request em Pydantic e precisa de um corpo JSON de exemplo pro Postman, curl ou um exemplo do Swagger. Cola o modelo, pega o JSON, pronto.
Dados de pytest e teste unitário
Converte uma instância de dataclass do seu arquivo de teste em um arquivo JSON seed pra testes de integração ou comparação de snapshot — sem precisar de encoder customizado.
Scaffolding de arquivo de config
Uma dataclass de settings com algumas dezenas de campos vira um template JSON pronto pra editar, pra você não ficar digitando chaves na mão pela décima vez.
Sincronizar docs com código
Gera exemplos JSON pro README ou referência de API direto dos modelos que você já tem, assim a doc não descola do código.
Perguntas comuns
Funciona com Pydantic v1 e v2?
Funciona sim. Os dois são suportados, incluindo Field(alias=...), model_config, Field(default_factory=...) e modelos aninhados. Os aliases renomeiam as chaves na saída, batendo com o que o próprio Pydantic emitiria.
Como datetime, Decimal e UUID são tratados?
datetime, date e time saem como strings ISO-8601. Decimal cai para número JSON (sem aspas). UUID vira uma string hex padrão. bytes é codificado em base64. Isso bate com as convenções do módulo json do Python quando você configura um encoder customizado.
E Enum, Literal e Optional?
Membros de Enum emitem o .value. Literal["a", "b"] emite a string em runtime. Campos Optional[X] que estão como None passam como JSON null em vez de sumirem — assim o formato da saída bate com as type hints.
Posso colar um módulo inteiro com várias classes?
Pode. Cada classe de nível superior que tem uma instância no módulo sai como uma entrada própria no JSON. Dataclasses e modelos Pydantic aninhados são expandidos no lugar, e campos herdados das classes pai entram junto.
Meu código fica armazenado em algum lugar?
O código é enviado pro backend só pra ser convertido. Não logamos nem persistimos. Como em qualquer ferramenta online, se o que você está colando for genuinamente sensível, dá uma olhada antes.
E se o Python tiver algo estranho — lambdas, generators, file handles?
Valores não serializáveis (funções, generators, sockets abertos) saem como null em vez de quebrar a conversão inteira. Se a origem tem erro de sintaxe, arrume os óbvios primeiro — o parser é tolerante com as manias de estilo, mas não consegue executar código quebrado.
Outras ferramentas que podem ajudar
Python para JSON é uma peça do quebra-cabeça. Aqui estão as ferramentas que combinam bem: