用于迭代分页API响应的生成器
项目描述
requests-paginator
用于迭代分页API响应的生成器
安装
pip install requests-paginator
用法
使用以下方式实例化 RequestsPaginator
- API输出的第1页的URL
- 一个函数(或lambda)
get_nextpage(page)
,它描述了如何获取下一页- 返回
None
以停止迭代。 page
是requests.models.Response
的实例
- 返回
示例
from requests_paginator import RequestsPaginator
BASE = 'https://galaxy.ansible.com'
def get_next_page(page):
body = page.json()
if body['next_link']:
return BASE + body['next_link']
return None
# instantiate the paginator
pages = RequestsPaginator(
BASE + '/api/v1/categories/?page=1',
get_next_page
)
# iterate over the pages
for page in pages:
print("calling %s" % (page.url))
page.raise_for_status()
print("found %s results" % (len(page.json()['results'])))
from requests_paginator import RequestsPaginator
def get_next_page(page):
links = {}
if "Link" in page.headers:
linkHeaders = page.headers["Link"].split(", ")
for linkHeader in linkHeaders:
(url, rel) = linkHeader.split("; ")
url = url[1:-1]
rel = rel[5:-1]
if rel == 'next':
return url
return None
# instantiate the paginator
pages = RequestsPaginator(
'https://api.github.com/users/github/repos?page=1',
get_next_page
)
# iterate over the pages
for page in pages:
print("calling %s" % (page.url))
page.raise_for_status()
print("found %s results" % (len(page.json())))
项目详情
关闭
requests-paginator-0.2.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3ca5709e8c6249f805a00850d0ae10e3d163c51ec5af1fc0f75ba32a0a9cc490 |
|
MD5 | 73609b7b19d591cd18b14e89abe8923f |
|
BLAKE2b-256 | cf32a08732040bf2184ba6d44ef48a0b016544dae7c0117784245800347a4fea |