Как использовать Python нумерацию страниц l oop для вызова API OAuth2? - PullRequest
0 голосов
/ 09 марта 2020

Я новичок в Python и пытаюсь работать над проектом API. Код, который я использую, дает данные с первой страницы, но я не прошел через следующие 33 страницы. Я не уверен, должен ли каждый запрос страницы вызывать новый токен или нет. Любая помощь с благодарностью.

import requests, json, urllib3

# Live Data Base URL
token_url = "TokenURL"
api_url = "APIURL"

# Call Type
data = {'grant_type': 'client_credentials'}

# Client credentials
client_id = "ID"
client_secret = "Secret"

# Disbale warnings
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)

# Single call with client credentials as the basic auth header - will return access_token
access_token_response = requests.post(token_url, data=data, verify=False, allow_redirects=False, auth=(client_id, client_secret))
tokens = json.loads(access_token_response.text)

# Get request using token and authorization headers
api_call_headers = {'Authorization': 'Bearer ' + tokens['access_token']}
api_call_response = requests.get(api_url, headers=api_call_headers, verify=False)


# Loops through all pages, but still only gives the first page
new_url = requests.get(api_url, headers=api_call_headers, verify=False).json()
my_list = new_url['results']

for page in range(2, int(new_url['totalPages'])+1):
    new_url = requests.get(api_url + "page={page}", headers=api_call_headers, verify=False).json()
    my_list.extend(new_url['results'])

print(my_list)
...