pandas - 如何在异步连接上使用 pandas.read_sql?

标签 pandas asynchronous sqlalchemy orm read-sql

我正在尝试做异步等价物

engine = create_engine('sqlite:///./test.db')
stmt = session.query(MyTable)
data = pd.read_sql(stmt, engine) 

但失败并显示错误 AttributeError: 'AsyncConnection' object has no attribute 'cursor'

完成这项工作的正确方法是什么?

asyn_engine = create_async_engine('sqlite+aiosqlite:///./test.db')
stmt = select(MyTable)
data = pd.read_sql(stmt, async_engine)

最佳答案

这段代码在原则上是有效的...

# Making pd.read_sql connection the first argument to make it compatible 
# with conn.run_syn()
def _read_sql(con, stmt):
    return pd.read_sql(stmt, con)


async def get_df(stmt, engine):
    async with engine.begin() as conn:
        data = await conn.run_sync(_read_sql, stmt)
    return data

asyn_engine = create_async_engine('sqlite+aiosqlite:///./test.db')
stmt = select(MyTable)

data = get_df(stmt, asyn_engine )

关于pandas - 如何在异步连接上使用 pandas.read_sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70848256/

相关文章:

python - 根据列名对 Pandas 数据框中的列进行排序

python - 为什么这个分组数据框没有显示预期的情节?

javascript - 如何在 Nodejs 流中正确处理异步操作

JavaScript - 用 async/await 替换 setTimeout

python - SQLAlchemy:具有复合主键的关系表

python - 带有 NaN 键的字典到 pandas 系列

python - 使用部分映射更新 pandas DataFrame 的列

angularjs - angular.js 在回调中触发 ng-show

python - 左连接的 SQLAlchemy 错误

python - 在 celery 工作人员内部存储数据的常见且明显的方式是什么?