Python API调用循环/nextpagetoken

2024-09-30 08:37:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我也是python和api的新手

我正在尝试使用我们工作中的端点

我们有一个我们经常使用的API,我们也有一个UI。但使用UI,我们一次只能提取10000条记录。 api没有限制

我发现了一小段代码,但我需要添加一个nextpGetOken

我的代码如下所示:

login_url = 'https://api.ubsend.io/v1/auth/login'
username = 'xxxxx'
password = 'xxxxx'
omitClaims = "true"
session = requests.Session()
session.headers['Accept'] = "application/json; charset=UTF-8"
response = session.post(
login_url,
json={'username': username, 'password': password},
headers={'VERSION': '3'},
)
response.raise_for_status()
response_data = response.json()
print(response_data)

这为我提供了AccessToken

然后我叫:

getevents = 'https://api.ubsend.io/v1/reporting/shipments?'
data ={'client_id': 13490, 'created_after': '2020-05-01T00:00', 'created_before': '2021-05-02T00:00'} req.prepare_url(getevents, data)
events = requests.get(req.url, headers={'Authorization' : 'Bearer ' + response_data['accessToken'], Content-Type': 'application/json'})
events.json()

返回:

 'nextPageToken': 'NjA4ZDc3YzNkMjBjODgyYjBhMWVkMTVkLDE2MTk4ODM5NzA3MDE='}

所以我想循环我的脚本-,直到nextpGetOken为空

有什么想法吗


Tags: 代码httpsapijsonurluidataresponse
1条回答
网友
1楼 · 发布于 2024-09-30 08:37:52

编辑谢谢更新。我认为这可能是我们正在寻找的解决方案。您可能需要仔细研究一下page_tokenURL参数的确切名称

has_next = True
getevents = 'https://api.ubsend.io/v1/reporting/shipments?'
token = None
while has_next:
    data ={'client_id': 13490, 'created_after': '2020-05-01T00:00', 'created_before': '2021-05-02T00:00'}
    if token:
        # I don't know the proper name for this URL parameter.
        data['page_token'] = token
    req.prepare_url(getevents, data)
    events = requests.get(req.url, headers={'Authorization' : 'Bearer ' + response_data['accessToken'], Content-Type: 'application/json'})
    token = events.json().get('nextPageToken')
    if not token:
        has_next = False       

我稍微打了个错。我想应该是{}

让我知道这是否有效

相关问题 更多 >

    热门问题