python异步等待无法返回元组

python异步等待无法返回元组,python,async-await,python-asyncio,aiohttp,Python,Async Await,Python Asyncio,Aiohttp,我想创建一个从网站异步下载的函数。我需要下载的结果加入到输入参数中,这样我就可以在下载后使用结果和参数 我目前有以下情况: async def download(session, url, var1, var2): with async_timeout.timeout(10): async with session.get(url) as response: return await (response.read(), url, var1, var

我想创建一个从网站异步下载的函数。我需要下载的结果加入到输入参数中,这样我就可以在下载后使用结果和参数

我目前有以下情况:

async def download(session, url, var1, var2):
    with async_timeout.timeout(10):
        async with session.get(url) as response:
            return await (response.read(), url, var1, var2)

async def loop_download(loop, urls, var1s, var2s):
    async with aiohttp.ClientSession(loop=loop) as session:
        tasks = [download(session, url, var1, var2) for url, var1, var2 in zip(urls, var1s, var2s)]
        results = await asyncio.gather(*tasks)
        return results

loop = asyncio.get_event_loop()
results = loop.run_until_complete(loop_download(loop, urls, var1s, var2s))
但是,这将返回一个错误:

TypeError: object tuple can't be used in 'await' expression
如何将一些输入数据(例如url)连接到结果中,以便使用这些数据进行进一步分析?

解决方法是:

return (await response.read(), url, x, y)
解决方法是:

return (await response.read(), url, x, y)

返回(等待响应.read(),url,var1,var2)
?或者更好的是,取返回TypeError的前一行的值:一个asyncio.Future、一个corroutine或一个waitiable都需要tl;dr here是您可以返回元组,但不能等待元组。
返回(wait response.read(),url,var1,var2)
?或者更好的是,取返回TypeError的前一行的值:一个asyncio.Future、一个corroutine或一个waitiable都需要tl;dr here是您可以返回元组,但不能等待元组。您还可以删除括号:
return-await-response.read(),url,x,y
您也可以删除括号:
return-await-response.read(),url,x,y