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

116
Vistas
Pydantic no deserializa Sqlalchemy cuando consulto con entidades

Uso esta parte del código para obtener datos de la base de datos.

 class OrmModel(BaseModel): class Config: orm_mode = True class PruebaVozFila(OrmModel): id:int id_origen:int id_destino:int hora_programada:str hora_ejecutada:str exitoso:bool estado:str @router.get("/pruebas-voz",response_model=PruebaVozFila) def obtener_pruebas_voz( *, db: Session = Depends(deps.get_db), current_user: models.User = Depends(deps.get_current_active_user), search:Search = Depends(Search) ) -> Any: temporal_query = db.query(PruebaVoz).filter().with_entities( PruebaVoz.id, PruebaVoz.id_origen, PruebaVoz.id_destino, PruebaVoz.hora_programada, PruebaVoz.hora_ejecutada, PruebaVoz.exitoso, PruebaVoz.estado, ).first() return jsonable_encoder(temporal_query)

Entonces, cuando consulto sin usar 'with_entities', funciona, pero si lo agrego, arroja el siguiente error: ingrese la descripción de la imagen aquí

Parece que Pydantic no puede encontrar las columnas o sus nombres dentro de temporal_query Imprimo la consulta como SQL y me da esto Con "with_entities"

 SELECT pruebavoz.id AS pruebavoz_id, pruebavoz.id_origen AS pruebavoz_id_origen, pruebavoz.id_destino AS pruebavoz_id_destino, pruebavoz.hora_programada AS pruebavoz_hora_programada, pruebavoz.hora_ejecutada AS pruebavoz_hora_ejecutada, pruebavoz.exitoso AS pruebavoz_exitoso, pruebavoz.estado AS pruebavoz_estado

Sin "con_entidades"

 SELECT pruebavoz.id AS pruebavoz_id, pruebavoz.id_origen AS pruebavoz_id_origen, pruebavoz.id_destino AS pruebavoz_id_destino, pruebavoz.hora_programada AS pruebavoz_hora_programada, pruebavoz.hora_ejecutada AS pruebavoz_hora_ejecutada, pruebavoz.exitoso AS pruebavoz_exitoso, pruebavoz.estado AS pruebavoz_estado, pruebavoz.usuario_ingreso AS pruebavoz_usuario_ingreso, pruebavoz.creado AS pruebavoz_creado, pruebavoz.actualizado AS pruebavoz_actualizado

como puede ver en la consulta real, los parámetros son los mismos. ¿Qué cree que está sucediendo?

over 4 years ago · Santiago Trujillo
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