import os
from sqlalchemy import create_engine
database_url = os.environ["DATABASE_URL"]
engine = create_engine(database_url)13 PostgreSQL from Python
13.1 Create an SQLAlchemy engine
13.2 Read a query into pandas
import pandas as pd
from sqlalchemy import text
query = text("""
SELECT city, year, value
FROM analysis.indicators
WHERE year >= :minimum_year
""")
with engine.connect() as connection:
df = pd.read_sql(
query,
connection,
params={"minimum_year": 2024},
)
df.head()13.3 Things to remember
- Do not hard-code passwords.
- Use parameters instead of formatting values into SQL strings.
- Close connections by using context managers.