objectif
Charger un DataFrame depuis une base SQL avec SQLAlchemy.
code minimal
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("sqlite+pysqlite:///:memory:", future=True)
with engine.begin() as con:
con.exec_driver_sql("create table t (id int, name text)")
con.exec_driver_sql("insert into t values (1,'a'),(2,'b')")
df = pd.read_sql("select * from t", engine)
print(df.to_dict(orient="records"))
utilisation
from sqlalchemy import text
with engine.begin() as con:
con.execute(text("insert into t values (:id,:name)"), [{"id":3,"name":"c"}])
print(pd.read_sql_table("t", engine).shape)
variante(s) utile(s)
import pandas as pd
print(pd.read_sql_query("select count(*) as n from t", engine).iloc[0]["n"])
notes
- Préférez des requêtes paramétrées pour la sécurité.