Python · modelos API Pydantic

Alias Pydantic camelCase ↔ snake_case

Mantén campos de modelos Python en snake_case y usa una convención JSON externa diferente mediante alias.

Por Equipo editorial de Camel Case ConverterPublicado 12 sept 2026Última revisión

Usa alias_generator para una convención 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 incluye to_camel y to_snake; model_dump(by_alias=True) emite los nombres externos.

Usa AliasGenerator cuando validación y serialización difieran

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 configurar validation_alias y serialization_alias por separado.

Consideraciones de producción

  • Los alias explícitos de campo pueden prevalecer sobre los generados; documenta las excepciones.
  • Prefiere alias de modelo cuando Pydantic ya valida el payload; usa conversión recursiva para JSON no modelado.
  • Usa model_dump(by_alias=True) para serializar nombres externos.
  • Mantén la política de nombres en el límite de modelo o serialización.

Probar el límite JSON online

Prueba objetos anidados, arrays, exclusiones, stop paths, prefijos, colisiones y diff de claves antes de implementar.

Suelta un archivo .json o elige uno de tu dispositivo

Los archivos se leen solo en tu navegador. Tamaño máximo: 5 MB.

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

El análisis, lectura de archivos, formato y conversión se ejecutan localmente en tu navegador. El JSON no se envía a un servidor de conversión.