python-3.x - 如何使用aoihttp为Python3中的每个异步方法调用传递不同的参数?
问题描述
我必须向 API 发出大量具有不同参数的发布请求。我目前使用循环为参数字典然后运行每个单独的请求,这非常耗时。
我偶然发现了 aiohttp 异步请求库,但我不清楚如何将变量作为参数传递,因为每个请求都会改变。我发现的示例都为不同的 url 传递了一组恒定的标头或参数。
例子:
ohsome_url = 'https://api.ohsome.org/v0.9-ignite/elements/geometry/'
data = {'bpolys': ctybnds,
'keys': key,
'values': val}
ohsomeResponse = requests.post(ohsome_url, data=data).json()
变量 ctybnds、key、val 当前都在循环中提取。
提前感谢您的任何见解!
解决方案
你需要实现这样的东西:
import aiohttp
import asyncio
async def request(url, data):
async with cs.get(url, json=data) as resp:
return resp.json()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
cs = aiohttp.client.ClientSession()
requests = [
request(url, data)
for url, data in [] # your varying data here
]
result = loop.run_until_complete(
asyncio.gather(*requests)
)
print(result)
推荐阅读
- python - 如何在 Python 中运行一个进程并捕获它接收到的所有内容(不仅仅是我给出的命令的结果)?
- python - 如何从不断出现在 python 中的图像中不断更新视频?
- pandas - 如何将元组绘制为 x 轴并绘制 y 轴上的列表
- java - 如何使用 nginx 代理更改主机 URL
- flutter - Flutter mobile_number 包中的异常
- react-native - tfjs-models 通用句子编码器的 embed() 仅在物理设备上中断
- here-api - 无法使用 HERE 网络定位 v2 API(当 v1 工作时)
- reactjs - 当我使用 ReactQuery useMutation 创建新组时如何更新组数组
- javascript - 从孩子改变父母的状态,但孩子的道具不更新
- javascript - mongoose 中的自定义验证器由于某种原因未申请