Dieses Thema wurde seit einiger Zeit weder hier noch anderswo angesprochen. Gibt es eine Lösung, die eine SQLAlchemy <Query object>
in einen Pandas DataFrame konvertiert?
Pandas kann verwendet werden pandas.read_sql
, dies erfordert jedoch die Verwendung von unformatiertem SQL. Ich habe zwei Gründe, dies vermeiden zu wollen: 1) Ich habe bereits alles mit dem ORM (ein guter Grund für sich) und 2) Ich verwende Python-Listen als Teil der Abfrage (z. B. .db.session.query(Item).filter(Item.symbol.in_(add_symbols)
wo Item
ist meine Modellklasse? und add_symbols
ist eine Liste). Dies entspricht SQL SELECT ... from ... WHERE ... IN
.
Ist alles möglich?
df = pd.read_sql(query, query.bind)
wannquery
ist asqlalchemy.sql.selectable.Select
. Ansonsten habe ich'Select' object has no attribute 'session'
.con
Parameter angeben, der derengine
orconnection string
Um dies für unerfahrene Pandas-Programmierer klarer zu machen, hier ein konkretes Beispiel:
Hier wählen wir eine Beschwerde aus der Beschwerde-Tabelle (sqlalchemy-Modell ist Beschwerde) mit id = 2 aus
quelle
.statement
dasDie ausgewählte Lösung hat bei mir nicht funktioniert, da ich immer wieder den Fehler bekam
Ich fand folgendes funktioniert:
quelle
Wenn Sie eine Abfrage mit Parametern und dialektspezifischen Argumenten kompilieren möchten, verwenden Sie Folgendes:
quelle
quelle
select
indf_query = select([DailyTrendsTable])
fehlt.from sqlalchemy import select