Este tópico não é abordado há algum tempo, aqui ou em outro lugar. Existe uma solução para converter um SQLAlchemy <Query object>
em um DataFrame pandas?
O Pandas tem a capacidade de usar, pandas.read_sql
mas isso requer o uso de SQL bruto. Tenho dois motivos para querer evitá-lo: 1) Já tenho tudo usando o ORM (um bom motivo por si só) e 2) Estou usando listas Python como parte da consulta (por exemplo: .db.session.query(Item).filter(Item.symbol.in_(add_symbols)
onde Item
está minha classe de modelo e add_symbols
é uma lista). Isso é equivalente a SQL SELECT ... from ... WHERE ... IN
.
É possível alguma coisa?
df = pd.read_sql(query, query.bind)
quandoquery
é asqlalchemy.sql.selectable.Select
. Caso contrário, eu consegui'Select' object has no attribute 'session'
.con
parâmetro, que pode ser oengine
ouconnection string
Só para deixar isso mais claro para programadores novatos de pandas, aqui está um exemplo concreto,
Aqui, selecionamos uma reclamação da tabela de reclamações (o modelo sqlalchemy é Reclamação) com id = 2
fonte
.statement
fazer?A solução selecionada não funcionou para mim, pois continuava recebendo o erro
Eu descobri que o seguinte funcionou:
fonte
Se você deseja compilar uma consulta com parâmetros e argumentos específicos do dialeto, use algo assim:
fonte
fonte
select
indf_query = select([DailyTrendsTable])
.from sqlalchemy import select