GitHub user klionsky123 edited a discussion: sqlalchemy & pandas don't work 
together:  'Connection' object has no attribute 'cursor'

### Error
```python
 UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) 
or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are 
not tested. Please consider using SQLAlchemy.
  df = pd.read_sql(query, con=connection)
❌ Query failed: 'Connection' object has no attribute 'cursor'
```
df = pd.read_sql(query, con=connection)

### Reproducible Example
```python
pandas~=2.2.3
requests~=2.32.3
apache-airflow~=2.10.5
SQLAlchemy~=1.4.54



import pandas as pd
from sqlalchemy import create_engine

# Connection string
conn_str = (
    "mssql+pyodbc://extl:xxx@serverIP/DB_name"
    "?driver=ODBC+Driver+17+for+SQL+Server"
)

# Create the SQLAlchemy engine
engine = create_engine(conn_str)

# Sample SQL query
query = "SELECT TOP 1 * FROM dbo.country"

# Use SQLAlchemy's connection object to execute the query
try:
    with engine.connect() as connection:
        df = pd.read_sql(query, con=connection)
    print(df)
except Exception as e:
    print("❌ Query failed:", e)
```
### Next steps?

✅ pandas==2.2.3 and SQLAlchemy==1.4.54 are compatible with each other.

✅ They are also compatible with apache-airflow==2.10.5, which officially 
supports SQLAlchemy>=1.4,<2.

So, I can't upgrade SQLAlchemy as  apache-airflow~=2.10.5 will not work then. 
What would you suggest?

Here is related issue I found:
https://github.com/pandas-dev/pandas/issues/57053

GitHub link: https://github.com/apache/airflow/discussions/50411

----
This is an automatically sent email for commits@airflow.apache.org.
To unsubscribe, please send an email to: commits-unsubscr...@airflow.apache.org

Reply via email to