相关疑难解决方法(0)

同时发出多个异步请求

我正在尝试同时调用~300个API调用,这样我最多可以在几秒内得到结果.

我的伪代码看起来像这样:

def function_1():
    colors = ['yellow', 'green', 'blue', + ~300 other ones]
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    res = loop.run_until_complete(get_color_info(colors))

async def get_color_info(colors):
    loop = asyncio.get_event_loop()
    responses = []
    for color in colors:
        print("getting color")
        url = "https://api.com/{}/".format(color)
        data = loop.run_in_executor(None, requests.get, url)
        r = await data
        responses.append(r.json())
    return responses
Run Code Online (Sandbox Code Playgroud)

这样做我getting color每隔一秒左右打印一次,代码需要永远,所以我很确定它们不会同时运行.我究竟做错了什么?

python python-3.x python-requests python-asyncio

2
推荐指数
1
解决办法
2819
查看次数