迭代所有行Smartsheet API Python

时间:2016-10-04 12:08:43

标签: python smartsheet-api

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

s = pd.pivot_table(d, columns='n', 
                      values='ts', 
                      aggfunc=lambda x: (np.min(x) - pd.Timestamp('2016-07-15')).days)
s = s.values.astype(int)
print (s)
n
12    0
23    0
31    0
Name: ts, dtype: int64

无论我在那里有多少物品。

我做错了什么?

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

4 个答案:

答案 0 :(得分:0)

听起来SDK可能正在执行获取工作表操作时使用分页 - 即,它只返回响应中的第一页结果,默认为100行。如API docs中所述,除非请求另行指定,否则页面大小默认为获取工作表响应中的100行。 (在文档中,请参阅 pageSize 页面参数的说明。)

我建议您在调用获取工作表操作时查看SDK,以便指定 pageSize 和/或页面

答案 1 :(得分:0)

默认情况下,get_sheet将返回包含100行的页面。包含标志:includeAll=true以返回所有行。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

include_all参数不属于get_sheet()

Python SDK 2.0 中的参数为page_size

,默认为100

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

其中sheet_id是您的工作表的ID。

如果您已有表单对象,则可以使用

my_sheet.total_row_count

获取行数并使用该行代替5000