Как использовать асинхронный генератор в Python 3.6? - PullRequest
0 голосов
/ 20 сентября 2018

Мне нужно обработать несколько страниц данных с сервера.Я хотел бы сделать генератор для этого, как это.К сожалению, я получаю TypeError: 'async_generator' object is not iterable

async def get_data():
    i = 0
    while i < 3:
        i += 1
        data = await http_call()  # call to http-server here
        yield data

data = [i for i in get_data()]  # inside a loop

Следующий вариант рейзит TypeError: object async_generator can't be used in 'await' expression

data = [i for i in await get_data()]  # inside a loop

1 Ответ

0 голосов
/ 20 сентября 2018

Используйте async for в вашем понимании.См. PEP 530 - Асинхронное понимание

data = [i async for i in get_data()]

В зависимости от используемой версии Python, она может быть доступна только в async def функциях.

...