Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

513
Vistas
¿Es posible cambiar el alias de salida en pydantic?

Configuración:

 # Pydantic Models class TMDB_Category(BaseModel): name: str = Field(alias="strCategory") description: str = Field(alias="strCategoryDescription") class TMDB_GetCategoriesResponse(BaseModel): categories: list[TMDB_Category] @router.get(path="category", response_model=TMDB_GetCategoriesResponse) async def get_all_categories(): async with httpx.AsyncClient() as client: response = await client.get(Endpoint.GET_CATEGORIES) return TMDB_GetCategoriesResponse.parse_obj(response.json())

Problema:
El alias se usa al crear una respuesta y quiero evitarlo. Solo necesito este alias para mapear correctamente los datos entrantes, pero cuando devuelvo una respuesta, quiero usar nombres de campo reales.

Respuesta real:

 { "categories": [ { "strCategory": "Beef", "strCategoryDescription": "Beef is ..." }, { "strCategory": "Chicken", "strCategoryDescription": "Chicken is ..." } }

Respuesta esperada:

 { "categories": [ { "name": "Beef", "description": "Beef is ..." }, { "name": "Chicken", "description": "Chicken is ..." } }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cambie los alias y los nombres de los campos y use la opción de configuración del modelo allow_population_by_field_name :

 class TMDB_Category(BaseModel): strCategory: str = Field(alias="name") strCategoryDescription: str = Field(alias="description") class Config: allow_population_by_field_name = True

Deje que los alias configuren los nombres de los campos que desea devolver, pero habilite allow_population_by_field_name para poder analizar datos que usan diferentes nombres para los campos.

over 4 years ago · Santiago Trujillo Denunciar

0

tal vez podrías usar este enfoque

 from pydantic import BaseModel, Field class TMDB_Category(BaseModel): name: str = Field(alias="strCategory") description: str = Field(alias="strCategoryDescription") data = { "strCategory": "Beef", "strCategoryDescription": "Beef is ..." } obj = TMDB_Category.parse_obj(data) # {'name': 'Beef', 'description': 'Beef is ...'} print(obj.dict())
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda