Использование библиотеки запросов для выполнения асинхронных запросов с Python 3.7

1

Мне нужно сделать асинхронные запросы, используя библиотеку запросов. В Python 3.7, если я попробую from requests import async я получаю SyntaxError: invalid syntax.

async стал зарезервированным в Python 3.7. Как мне обойти эту ситуацию?

  • 1
    Есть несколько способов импорта. importlib.import_module(".async", "requests") . Но на самом деле я также получаю ModuleNotFoundError: No module named 'requests.async' .
  • 0
    Проблема также происходит с Python 3.6. Видимо, requests отпустили модуль async совсем давно, но в документах не очень ясно об этом.
Показать ещё 1 комментарий
Теги:
python-requests
python-3.x
grequests

1 ответ

1

Вы можете использовать asyncio для создания асинхронных запросов. Вот пример:

import asyncio
import requests

async def main():
    loop = asyncio.get_event_loop()
    futures = [
        loop.run_in_executor(
            None, 
            requests.get, 
            'http://example.org/'
        )
        for i in range(20)
    ]
    for response in await asyncio.gather(*futures):
        pass

loop = asyncio.get_event_loop()
loop.run_until_complete(main())
  • 0
    Это запущенный метод синхронизации в пуле потоков. Определенно не может воспользоваться преимуществами асинхронного ввода-вывода.
  • 0
    Так это асинхронный характер или блокировка?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню