Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

515
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda