Skip to main content

requests-paginator

PyPI Version License

A generator for iterating over paginated API responses

Installation

pip install requests-paginator

Usage

Instantiate RequestsPaginator with:

  • A URL to page 1 of the API output
  • A function (or lambda) get_nextpage(page) which describes how to get the next page:

Examples:

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())))

Release files for requests-paginator 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for requests-paginator 0.2.0
File Size Uploaded
requests-paginator-0.2.0.tar.gz 2.1 kB Details

Release files / requests-paginator-0.2.0.tar.gz

Download URL requests-paginator-0.2.0.tar.gz
Size 2.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3ca5709e8c6249f805a00850d0ae10e3d163c51ec5af1fc0f75ba32a0a9cc490
BLAKE2b-256 checksum
How to use checksums
cf32a08732040bf2184ba6d44ef48a0b016544dae7c0117784245800347a4fea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page