我的情况很独特。我正在创建一个通用代码实用程序,我的任务是通过异步 API 调用来提高性能。大多数程序都有 6 到 10 个相同的 API 调用来读取不同的值。想法是在启动时以异步方式进行这些 API 调用。例如,编写一个方法,该方法将采用字符串(键)数组并为每个键触发异步调用,如下所示。
results = await asyncio.gather(
call_api(key1),
call_api(key2),
call_api(key3)
)
按键数量是动态的。编写此代码以在 python 中进行动态数量的 call_api/API 调用的最佳方法是什么?
我认为您正在寻找 unpack 运算符 (
*
):
# ...
keys = ["key1", "key2", "key3"] # <-- dynamic list of all keys
api_calls_tasks = [asyncio.create_task(call_api(k)) for k in keys]
results = await asyncio.gather(*api_calls_tasks)