Pagination 使用python asana API对请求进行分页

Pagination 使用python asana API对请求进行分页,pagination,asana,asana-api,Pagination,Asana,Asana Api,我正在尝试使用python asanaAPI从我所有的asana工作空间导出所有任务。但在给出以下错误消息后,它会在某个时刻存在 Traceback (most recent call last): File "export.py", line 56, in <module> for index, task in enumerate(tasks): File "build\bdist.win32\egg\asana\page_iterator.py", line 58

我正在尝试使用python asanaAPI从我所有的asana工作空间导出所有任务。但在给出以下错误消息后,它会在某个时刻存在

Traceback (most recent call last):
  File "export.py", line 56, in <module>
    for index, task in enumerate(tasks):
  File "build\bdist.win32\egg\asana\page_iterator.py", line 58, in items
  File "build\bdist.win32\egg\asana\page_iterator.py", line 54, in next
  File "build\bdist.win32\egg\asana\page_iterator.py", line 43, in __next__
  File "build\bdist.win32\egg\asana\page_iterator.py", line 74, in get_next
  File "build\bdist.win32\egg\asana\client.py", line 104, in get
  File "build\bdist.win32\egg\asana\client.py", line 75, in request
asana.error.InvalidRequestError: Invalid Request: Your pagination token has expired.
但是,没有区别,因为我没有得到任何“下一页”的价值,即使项目中有50多个任务

所以我的问题是:

如何使用python asana API进行分页请求?最好用一个例子来解释

编辑:

我正在获取以下任务:

tasks = client.tasks.find_all({'project' : project['id']}, item_limit=1)
print "Tasks", tasks    # Prints generator object
for index, task in enumerate(tasks):
    complete_task = client.tasks.find_by_id(task["id"])
    print complete_task    #Prints complete task dictionary

现在我的问题是,我将从何处获取剩余任务的下一页内容,以及如何访问它。

您好,您能否提供有关如何使用任务结果的更多详细信息。此外,您还希望使用item_limit而不是limit。这适用于me tasks=client.tasks.find_all({'project':},item_limit=1)在tasks:print中的任务task@Mark谢谢你的回复。在使用item_limit之后,现在我只能获得有限数量的任务。我使用了与您在评论中提到的相同的行来获取任务。但现在如何获取下一页数据?我只得到50个任务(生成器对象有50个任务),没有任何指向文档中提到的下一个页面的URL/链接。你能举个例子吗?@Mark在获得任务后,我在生成器对象上迭代如下:对于索引,枚举中的任务(tasks):complete_task=client.tasks.find_by_id(task[“id”]);打印任务当你这样使用它时,下一页的内容对你来说应该是透明的。底层实现会根据需要为您获取下一页。啊,好吧,我想我看到了可能发生的事情。由于您获取了其间的所有故事/附件/子任务,因此在获取下一页任务时,偏移标记已过期。您可以先将所有任务保存在某个位置(没有故事等),然后遍历新创建的任务列表并获取任务的故事等。您好,您能否提供有关如何使用任务结果的更多详细信息。此外,您还希望使用item_limit而不是limit。这适用于me tasks=client.tasks.find_all({'project':},item_limit=1)在tasks:print中的任务task@Mark谢谢你的回复。在使用item_limit之后,现在我只能获得有限数量的任务。我使用了与您在评论中提到的相同的行来获取任务。但现在如何获取下一页数据?我只得到50个任务(生成器对象有50个任务),没有任何指向文档中提到的下一个页面的URL/链接。你能举个例子吗?@Mark在获得任务后,我在生成器对象上迭代如下:对于索引,枚举中的任务(tasks):complete_task=client.tasks.find_by_id(task[“id”]);打印任务当你这样使用它时,下一页的内容对你来说应该是透明的。底层实现会根据需要为您获取下一页。啊,好吧,我想我看到了可能发生的事情。由于您获取了其间的所有故事/附件/子任务,因此在获取下一页任务时,偏移标记已过期。您可以做的是首先将所有任务保存在某个位置(没有故事等),然后遍历新创建的任务列表并获取它们的故事等。
tasks = client.tasks.find_all({'project' : project['id']}, item_limit=1)
print "Tasks", tasks    # Prints generator object
for index, task in enumerate(tasks):
    complete_task = client.tasks.find_by_id(task["id"])
    print complete_task    #Prints complete task dictionary