python3 - 从异步方法获取结果

python3 -Get result from async method

我是 Python 的新手。我已经使用 asyncio 编写了一个简单的报废程序。这是我的代码片段

 loop = asyncio.get_event_loop()
 task = loop.create_task(conSpi.parse(arguments.url))
 value = loop.run_until_complete(asyncio.wait([task]))
 loop.close()

我想打印 value.Rather 打印变量返回的结果 值,它打印出这样的东西

 {<Task finished coro=<ConcurrentSpider.parse() done, 
 defined at /home/afraz/PycharmProjects/the-lab/concurrentspider.py:28> result=3>}

`

如何只得到结果而不打印其余部分?

最简单的方法是写

value = loop.run_until_complete(task)

只有当你想等待一项任务时才有效。 如果您需要完成一项以上任务,则需要正确使用 asyncio.wait。 它 returns 一个包含已完成和未决期货的元组。但是默认情况下,挂起的期货将是空的,因为它等待所有期货完成。

所以像

done, pending = loop.run_until_complete(asyncio.wait( tasks))
for future in done:
    value = future.result() #may raise an exception if coroutine failed
    # do something with value