Este tema no se ha abordado en un tiempo, aquí o en otro lugar. ¿Existe una solución para convertir un SQLAlchemy <Query object>
en un DataFrame de pandas?
Pandas tiene la capacidad de usar, pandas.read_sql
pero esto requiere el uso de SQL sin formato. Tengo dos razones para querer evitarlo: 1) Ya tengo todo usando el ORM (una buena razón en sí misma) y 2) Estoy usando listas de Python como parte de la consulta (por ejemplo: ¿ .db.session.query(Item).filter(Item.symbol.in_(add_symbols)
dónde Item
está mi clase modelo y add_symbols
es una lista). Este es el equivalente de SQL SELECT ... from ... WHERE ... IN
.
¿Es posible algo?
df = pd.read_sql(query, query.bind)
cuandoquery
es asqlalchemy.sql.selectable.Select
. De lo contrario, tengo'Select' object has no attribute 'session'
.con
parámetro, que puede serengine
oconnection string
Solo para que esto sea más claro para los programadores de pandas novatos, aquí hay un ejemplo concreto,
Aquí seleccionamos una queja de la tabla de quejas (el modelo de sqlalchemy es Queja) con id = 2
fuente
.statement
hacer?La solución seleccionada no funcionó para mí, ya que seguía recibiendo el error
Encontré lo siguiente funcionado:
fuente
Si desea compilar una consulta con parámetros y argumentos específicos de dialecto, use algo como esto:
fuente
fuente
select
indf_query = select([DailyTrendsTable])
.from sqlalchemy import select