← retour aux snippets

pandas: read_sql via SQLAlchemy

Charger un DataFrame depuis une base SQL avec SQLAlchemy.

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é.