Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
4
Как убедиться, что запросы к API исполняются одновременно
Условие задачи
Вопрос: каким способом можно подтвердить, что запросы к внешнему API действительно обрабатываются параллельно? Пример кода: функция get_weather получает данные о погоде для списка городов через HTTP‑запросы.
import asyncio
import requests
async def get_weather(city):
with requests.Session() as session:
url = 'http://api.openweathermap.org/data/2.5/weather'
params = {'q': city, 'APPID': '2a4ff86f9aaa70041ec8e82db64abf56'}
with session.get(url=url, params=params) as response:
weather_json = response.json()
print(f'{city}: {weather_json["weather"][0]["main"]}')
async def main():
loop = asyncio.get_event_loop()
tasks = [loop.create_task(get_weather(city))
for city in ['Moscow', 'St. Petersburg', 'Rostov-on-Don', 'Kaliningrad', 'Vladivostok', 'Minsk', 'Beijing', 'Delhi', 'Tokyo']]
await asyncio.wait(tasks)
if __name__ == "__main__":
asyncio.run(main())