遍历所有行 Smartsheet API Python

Iterate through all rows Smartsheet API Python

我正在尝试遍历 sheet 中的所有行,但似乎仅使用 .rows 仅限于返回 100 个项目。

for temp_row in inventory.rows:
    x += 1
print x #X will always return <= 100

不管我里面有多少物品。

我做错了什么?

编辑:澄清一下,我试图对每一行做一些事情,而不是计算它们,这只是我注意到它只抓取 100 行的一个例子。

听起来 SDK 在执行 Get Sheet 操作时可能正在使用 paging -- 即,它只返回响应中结果的第一页,默认为 100 行。如 API docs 中所述,页面大小在 Get Sheet 响应中默认为 100 行,除非请求另有说明。 (在文档中,请参阅 pageSizepage 参数的说明。)

我建议您查看 SDK,了解在调用 pageSize and/or page =16=]获取Sheet操作。

默认情况下,get_sheet 将 return 一个包含 100 行的页面。包括标志:includeAll=true 到 return 所有行。

有关详细信息,请参阅 documentation on paging

重要的是要注意,当直接向 Smartsheet API 发出请求而不是通过 Python SDK 时,默认响应是包括 sheet 而无需包含 pagepageSize 参数。

include_all 参数不是 get_sheet() 的一部分。

PythonSDK 2.0中的参数为page_size

并且默认为 100

my_sheet = smartsheet.Sheets.get_sheet(sheet_id, page_size=5000)

其中 sheet_id 是您 sheet 的 ID。

如果您已经有了 sheet 对象,您可以使用

my_sheet.total_row_count

获取行数并使用它代替 5000