How to return value from async method in python?
Question:
I have the following flask app:
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()
When I run this code I got TypeError: 'NoneType' object is not iterable
. How to return my values
converted to JSON?
Answers:
You need to return your values in your run
function for them to be available in test
:
async def run():
conn = await asyncpg.connect(db_url)
values = await conn.fetch('''SELECT ... FROM ... WHERE ...;''')
await conn.close()
return values
I have the following flask app:
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()
When I run this code I got TypeError: 'NoneType' object is not iterable
. How to return my values
converted to JSON?
You need to return your values in your run
function for them to be available in test
:
async def run():
conn = await asyncpg.connect(db_url)
values = await conn.fetch('''SELECT ... FROM ... WHERE ...;''')
await conn.close()
return values