迭代分页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第三方库


热门话题
eclipse如何将LWUIT主题文件加载到Java项目中?   JavaJPA HibernateFetchType。渴望和获取模式。加入非主键   java为单个和多个对象创建对象容器   java在到达末尾时在viewpager2中加载更多项目   java我怎么能忽略它。解压时存储DS_和MACOSX文件?   java我无法使用ApachePOI3.10读取xlsx文件   java为什么我在Android应用程序的webView中看到广告(我没有注册任何广告)   在Java中,PrintWriter write()方法在哪里写入数据   c#ProcessStartInfo挂在“WaitForExit”上?为什么?   安卓中的java解析查询问题   java Android摄像头在拍照时禁用   爪哇交货过早地从jsprit的仓库提货   java退避算法仿真   java我的计数反转算法有什么问题?   java什么导致一个类中的变量受到另一个类的影响?   JavaVaadin和Spring引导问题   java无法使用writerInterceptor拦截jersey资源方法   java如何根据配置选择RedisCluster、RedisStandalone和Sentinel连接?   java GSON/如何解析数字   java:字节码中的字符串concat转换为StringBuilder