回答问题

我需要处理来自服务器的几页数据。我想像这样为它制作一个生成器。不幸的是我得到了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

Answers

在你的理解中使用async for。参见PEP 530 -- 异步理解

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

根据您使用的 Python 版本,这可能仅在async def函数中可用。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐