SQLAlchemy2.0以降を使ってread_sqlする方法
/ 1 min read
Table of Contents
問題
SQLAlchemy と pandas を使っていつものように read_sql したところ、
read_sql_query() throws "'OptionEngine' object has no attribute 'execute'"
というエラーが出てしまいました。
解決方法
どうやら、SQLAlchemy の ver2.0 から若干仕様が変わったようで、以下のようにしたら無事エラーが解消しました。
import pandas as pdfrom sqlalchemy import create_enginefrom sqlalchemy import text as q_text
def connection_db(): """DB接続""" SQLALCHEMY_DATABASE_URL = "sqlite:///hoge.db" engine = create_engine( SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} ) return engine
engine = connection_db()
# ポイント# SQLはSQLAlchemyのtext関数を通す# engineにconnect()メソッドをつけるq = q_text("SELECT * FROM huga_table")df = pd.read_sql(sql=q, con=engine.connect())
参考
read_sql_query() throws “‘OptionEngine’ object has no attribute ‘execute’” with SQLAlchemy 2.0.0