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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

requests-paginator-0.2.0.tar.gz (2.1 kB view details)

Uploaded Source

File details

Details for the file requests-paginator-0.2.0.tar.gz.

File metadata

  • Download URL: requests-paginator-0.2.0.tar.gz
  • Upload date:
  • Size: 2.1 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for requests-paginator-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3ca5709e8c6249f805a00850d0ae10e3d163c51ec5af1fc0f75ba32a0a9cc490
MD5 73609b7b19d591cd18b14e89abe8923f
BLAKE2b-256 cf32a08732040bf2184ba6d44ef48a0b016544dae7c0117784245800347a4fea

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page