Python Clockify-如何获取所有时间条目(不仅仅是第一页)
我正在尝试使用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
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页,但当我输入这个时,它很可能会更均匀