Python · modelos API Pydantic

Aliases Pydantic camelCase ↔ snake_case

Mantenha campos de modelos Python em snake_case e use outra convenção no JSON externo por meio de aliases.

Por Equipe editorial do Camel Case ConverterPublicado em 12 de set. de 2026Última revisão

Use alias_generator para uma convenção externa

from pydantic import BaseModel, ConfigDict
from pydantic.alias_generators import to_camel

class UserProfile(BaseModel):
    model_config = ConfigDict(
        alias_generator=to_camel,
        validate_by_alias=True,
        validate_by_name=True,
    )

    first_name: str
    created_at: str

profile = UserProfile.model_validate({
    "firstName": "Ada",
    "createdAt": "2026-09-12",
})

print(profile.first_name)
print(profile.model_dump(by_alias=True))
# {'firstName': 'Ada', 'createdAt': '2026-09-12'}

Pydantic inclui to_camel e to_snake; model_dump(by_alias=True) emite os nomes externos.

Use AliasGenerator quando validação e serialização diferirem

from pydantic import AliasGenerator, BaseModel, ConfigDict
from pydantic.alias_generators import to_camel, to_snake

class UserProfile(BaseModel):
    model_config = ConfigDict(
        alias_generator=AliasGenerator(
            validation_alias=to_camel,
            serialization_alias=to_snake,
        ),
        validate_by_alias=True,
    )

    first_name: str
    created_at: str

profile = UserProfile.model_validate({
    "firstName": "Ada",
    "createdAt": "2026-09-12",
})

print(profile.model_dump(by_alias=True))
# {'first_name': 'Ada', 'created_at': '2026-09-12'}

AliasGenerator permite definir validation_alias e serialization_alias separadamente.

Considerações de produção

  • Aliases explícitos de campo podem prevalecer sobre aliases gerados; documente as exceções.
  • Prefira aliases de modelo quando Pydantic já valida o payload; use conversão recursiva para JSON não modelado.
  • Use model_dump(by_alias=True) para serializar nomes externos.
  • Mantenha a política de nomenclatura na fronteira de modelo/serialização.

Testar a fronteira JSON online

Teste objetos aninhados, arrays, exclusões, stop paths, prefixos, colisões e diff de chaves antes de implementar.

Solte um arquivo .json ou escolha no dispositivo

Arquivos são lidos apenas no navegador. Tamanho máximo: 5 MB.

JSON convertido
{
  "userProfile": {
    "firstName": "Ada",
    "createdAt": "2026-09-12"
  }
}

Parsing, leitura de arquivo, formatação e conversão rodam localmente no navegador. O JSON não é enviado a um servidor de conversão.