如何在python中从异步方法返回值?

2024-05-16 03:10:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下烧瓶应用程序:

async def run():
   conn = await asyncpg.connect(db_url)
   values = await conn.fetch('''SELECT ... FROM ... WHERE ...;''')
   await conn.close()

@app.route('/')
def test():
    loop = asyncio.get_event_loop()
    res = loop.run_until_complete(run())
    return json.dumps([dict(r) for r in res]) 

if __name__ == '__main__':
    app.run()

当我运行这段代码时,我得到了TypeError: 'NoneType' object is not iterable。如何将我的values转换为JSON?


Tags: runloopapp应用程序urldbasync烧瓶
1条回答
网友
1楼 · 发布于 2024-05-16 03:10:37

您需要在run函数中返回值,以便它们在test中可用:

async def run():
   conn = await asyncpg.connect(db_url)
   values = await conn.fetch('''SELECT ... FROM ... WHERE ...;''')
   await conn.close()
   return values

相关问题 更多 >