Ten temat nie był poruszany od jakiegoś czasu, tutaj ani gdzie indziej. Czy istnieje rozwiązanie konwertujące SQLAlchemy <Query object>
na pandas DataFrame?
Pandy mają możliwość używania, pandas.read_sql
ale wymaga to użycia surowego SQL. Mam dwa powody, dla których chcę tego uniknąć: 1) mam już wszystko przy użyciu ORM (dobry powód sam w sobie) i 2) używam list Pythona jako części zapytania (np .: .db.session.query(Item).filter(Item.symbol.in_(add_symbols)
gdzie Item
jest moja klasa modelu i add_symbols
jest listą). To jest odpowiednik SQL SELECT ... from ... WHERE ... IN
.
Czy coś jest możliwe?
df = pd.read_sql(query, query.bind)
gdyquery
jestsqlalchemy.sql.selectable.Select
. W przeciwnym razie mam'Select' object has no attribute 'session'
.con
parametr, którym może byćengine
lubconnection string
Aby było to bardziej zrozumiałe dla początkujących programistów pand, oto konkretny przykład:
Tutaj wybieramy reklamację z tabeli reklamacji (model sqlalchemy to Reklamacja) o id = 2
źródło
.statement
?Wybrane rozwiązanie nie zadziałało, ponieważ ciągle otrzymywałem błąd
Okazało się, że działa:
źródło
Jeśli chcesz skompilować zapytanie z parametrami i argumentami specyficznymi dla dialektu, użyj czegoś takiego:
źródło
źródło
select
wdf_query = select([DailyTrendsTable])
.from sqlalchemy import select