我有以下为我生成数据的方法:
async def fetch_url(self, video_id):
data = await self.s3.generate_presigned_url(...video_id...)
return data
def convert_to_json(self, data):
loop = asyncio.get_event_loop()
tasks = []
urls = [row[0] for row in data]
for url in urls:
tasks.append(fetch_url(url))
loop.run_until_complete(asyncio.gather(*tasks))
loop.close()
如何将fetch_url
的结果存储在某个列表中?
答案 0 :(得分:1)
...如果所有任务都成功完成,则返回的将来的结果是结果列表(按原始序列的顺序排列,不一定是结果到达的顺序)。 ...
也就是说,如果您await
收集了结果,您将获得一个已提取的data
返回Future的结果,或者提出异常。
即run_until_complete
将返回结果gather
,即提取的data
列表。
存储的结果很简单:
...
all_data = loop.run_until_complete(asyncio.gather(*tasks))
loop.close()
return all_data