迭代分页api响应的生成器

requests-paginator的Python项目详细描述


请求分页器

PyPI VersionLicense

用于迭代分页api响应的生成器

安装

pip install requests-paginator

用法

用:

实例化RequestsPaginator
  • 指向API输出第1页的URL
  • 描述如何获取下一页的函数(或lambda)get_nextpage(page)
    • 返回None以停止迭代。
    • page^{}
    • 的一个实例

示例:

fromrequests_paginatorimportRequestsPaginatorBASE='https://galaxy.ansible.com'defget_next_page(page):body=page.json()ifbody['next_link']:returnBASE+body['next_link']returnNone# instantiate the paginatorpages=RequestsPaginator(BASE+'/api/v1/categories/?page=1',get_next_page)# iterate over the pagesforpageinpages:print("calling %s"%(page.url))page.raise_for_status()print("found %s results"%(len(page.json()['results'])))
fromrequests_paginatorimportRequestsPaginatordefget_next_page(page):links={}if"Link"inpage.headers:linkHeaders=page.headers["Link"].split(", ")forlinkHeaderinlinkHeaders:(url,rel)=linkHeader.split("; ")url=url[1:-1]rel=rel[5:-1]ifrel=='next':returnurlreturnNone# instantiate the paginatorpages=RequestsPaginator('https://api.github.com/users/github/repos?page=1',get_next_page)# iterate over the pagesforpageinpages:print("calling %s"%(page.url))page.raise_for_status()print("found %s results"%(len(page.json())))

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:删除并重新创建对象   HttpObjectAggregator上的java Netty 4泄漏异常   即使测试失败,java Gradle也会在测试阶段后执行任务   java更新JComboBox后,如何刷新框的长度   java当我单击按钮时,我的应用程序意外停止   java SpringBoot 2.2.1 groovyMarkupConfigurer异常   java spring webflux:如何从同步调用发布事件以进行异步处理?   java Viewpager“ViewGroup”更改背景色运行时   JavaJTree:检查选择的级别   java我想在所有网站href链接上添加前缀   java如何生成无分支代码?   用Java在DrawingCanvas上创建线条   使用jpos api的java打包子字段   Java映射到对象而不是另一个对象的现有方法可选<>吗?   java添加更改图形颜色的按钮