且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何使用asyncio和aiohttp异步通过API响应进行分页

更新时间:2023-01-13 09:33:00

from aiohttp import web

 async def fetch(self size: int = 10):

    data = "some code to fetch data here"

    def paginate(_data, _size):
        import itertools

        while True:
            i1, i2 = itertools.tee(_data)
            _data, page = (itertools.islice(i1, _size, None),
                              list(itertools.islice(i2, _size)))
            if len(page) == 0:
                break
            yield page

    return web.json_response(list(paginate(_data=data, _size=size)))