Use registros contrastantes
Aceita um objeto ou array não vazio de objetos. Todos os objetos na mesma posição de um array aninhado contribuem para um modelo de elemento; a comparação encontra chaves ausentes.
Geração de tipos
Compare os dois registros: uma chave ausente e um null explícito levam a valores padrão diferentes.
A análise e a geração ocorrem neste navegador. A entrada não é enviada nem armazenada.
As amostras do array definem o modelo de elemento Root. load_models do Pydantic aceita um objeto ou um array.
2 classes · 2 campos que aceitam null
O conversor JSON para Python transforma respostas representativas de APIs em um rascunho de modelo. Inclua registros com chaves diferentes: um objeto completo sozinho não revela quais campos podem faltar.
Escolha dataclass para contêineres tipados da biblioteca padrão ou Pydantic para interpretar os dados durante o carregamento. As amostras indicam tipos observados; não descrevem todas as regras do seu domínio.
JSON para Python mantém obrigatório um campo presente em todas as amostras mesmo quando aceita null. Se outra amostra omitir a chave, o campo recebe None como padrão. Isso muda os argumentos exigidos pelo construtor.
Palavras reservadas, pontuação e métodos do modelo exigem atributos seguros. A grafia original fica nos metadados dataclass ou aliases Pydantic, com sufixos determinísticos quando dois nomes colidem.
Aceita um objeto ou array não vazio de objetos. Todos os objetos na mesma posição de um array aninhado contribuem para um modelo de elemento; a comparação encontra chaves ausentes.
O modo padrão adiciona None apenas às chaves ausentes. O modo totalmente opcional permite omitir todos os campos. Datas continuam str até ativar ISO. Decimal afeta tokens decimais ou com expoente e grupos numéricos que os contêm.
A geração espera 350 ms após a edição. Desative o modo automático para usar Gerar ou Ctrl/Cmd+Enter. Qualquer alteração bloqueia a exportação imediatamente. Limpar e Exemplo guardam uma cópia da entrada, opções e código para desfazer uma vez.
JSON para Python gera dataclasses que usam só a biblioteca padrão e colocam campos obrigatórios antes dos campos com padrão. A saída Pydantic tem como alvo 2.12.5. Classes filhas são declaradas antes das classes que as referenciam, permitindo importar o arquivo em Python 3.9.
Grupos de inteiros puros usam int de precisão arbitrária. Grupos com decimal ou expoente usam float por padrão, inclusive inteiros grandes misturados, que podem ser arredondados. No modo Decimal, esses grupos usam Decimal e o carregador lê decimais sem passar por float, inclusive em contêineres Any.
O modo ISO reconhece datas válidas e timestamps completos com fuso horário e até seis casas de fração de segundo. Todas as strings não nulas da posição devem ter o mesmo tipo de data. Datas inválidas, sem fuso ou com maior precisão continuam str. Pydantic converte as strings reconhecidas; dataclass não.
Os campos viram ASCII snake_case. Palavras reservadas, sublinhados iniciais, nomes model_* e métodos BaseModel são renomeados. Chaves vazias, Unicode e controles preservam aliases. Importações usam aliases privados para evitar colisões com classes chamadas Decimal ou BaseModel.
Use dataclasses.asdict para obter dicionários recursivamente e json.dumps para serializar, adaptando valores como date e Decimal. asdict usa atributos Python: reconstruir os aliases originais exige código seu. Metadados não mudam a serialização automaticamente.
Sim. JSON para Python cria classes auxiliares para objetos aninhados não vazios, antes das classes que dependem delas. Arrays combinam todas as amostras daquela posição. Objetos aninhados vazios usam Dict[str, Any].
Escolha Pydantic e carregue com load_models. A função constrói modelos aninhados, aplica a política numérica e rejeita propriedades desconhecidas. A coerção de tipos é a padrão do Pydantic, portanto regras de negócio específicas ainda precisam ser acrescentadas.
É possível escrever o carregamento com a biblioteca padrão, mas o arquivo dataclass gerado não traz esse decodificador. json.loads retorna dicionários e listas; seu código precisa mapear aliases e construir cada instância aninhada.
Mantenha os aliases ativados. Field(alias=...) lê a chave original no Pydantic; dataclass guarda json_key nos metadados para seu adaptador. Sufixos separam colisões, e a configuração Pydantic não aceita nomes Python como alternativa ao alias.
Encontrou uma inferência que precisa melhorar?
Use JSON para Python com chaves ausentes, null e números representativos; depois teste o código exportado com o contrato de leitura da sua aplicação.