【问题标题】:How can I use pandas.read_sql on an async connection?如何在异步连接上使用 pandas.read_sql?
【发布时间】:2022-01-25 11:56:55
【问题描述】:

我正在尝试做异步等效

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)

【问题讨论】:

    标签: pandas asynchronous sqlalchemy orm read-sql


    【解决方案1】:

    这个代码主要是工作...

    # 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 )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 2023-03-07
      • 2022-07-26
      相关资源
      最近更新 更多