Python Clockify-如何获取所有时间条目(不仅仅是第一页)

Python Clockify-如何获取所有时间条目(不仅仅是第一页),python,json,clockify,Python,Json,Clockify,我正在尝试使用Python中的以下代码行从我的Clockify工作区获取所有时间条目: import boto3 import json import requests import pprint pp = pprint.PrettyPrinter(indent=2) url = "https://reports.api.clockify.me/v1/workspaces/{workspaceID}/reports/detailed/" x=list(range(1,5

我正在尝试使用Python中的以下代码行从我的Clockify工作区获取所有时间条目:

import boto3
import json
import requests
import pprint

pp = pprint.PrettyPrinter(indent=2)

url = "https://reports.api.clockify.me/v1/workspaces/{workspaceID}/reports/detailed/"

x=list(range(1,5373,1))
for i in x:
  pagenumber=i
  payload1="{\r\n  \"dateRangeStart\": \"2020-12-10T00:00:00.000\",\r\n  \"dateRangeEnd\": \"2021-03-31T23:59:59.000\",\r\n  \"detailedFilter\": {\r\n    \"page\": "
  payload2=f"{pagenumber}"
  payload3=",\r\n    \"pageSize\": 200}\r\n}"
  payload = payload1+payload2+payload3
  headers = {
    'X-Api-Key': {APIKEY},
    'Content-Type': 'application/json'}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

这是可行的,但我只得到了5373页中第一页的信息。有没有什么方法可以让我以更好的方式循环它们?我那里的for循环似乎工作不正常。或者Clockify因为API限制而停止了我的请求?我非常感谢您的帮助,我不是一个有经验的开发人员

看起来您的响应对象和打印命令在for循环之外。这将导致只返回第一个页面,然后脚本停止,而不是在所有页面中循环

for i in x:
  pagenumber=i
  payload1="{\r\n  \"dateRangeStart\": \"2020-12-10T00:00:00.000\",\r\n  \"dateRangeEnd\": \"2021-03-31T23:59:59.000\",\r\n  \"detailedFilter\": {\r\n    \"page\": "
  payload2=f"{pagenumber}"
  payload3=",\r\n    \"pageSize\": 200}\r\n}"
  payload = payload1+payload2+payload3
  headers = {
    'X-Api-Key': {APIKEY},
    'Content-Type': 'application/json'}

  response = requests.request("POST", url, headers=headers, data=payload)

  print(response.text)
Clockify在JSON响应的“totals”对象中返回一个“entriesCount”字段。我建议用它来计算你的页面,而不是硬编码页面,因为时间表条目创建得很快,所以虽然你现在可能有5373页,但当我输入这个时,它很可能会更均匀