2017-04-16 43 views
0

我正在使用Python 3.52,Smartsheet API SDK 2.0.10。Smartsheet API get_sheet(Python)過濾器不工作

的get_sheet(在sheets.py)具有三個 '過濾器',其是整數的名單

  1. row_numbers,
  2. column_ids,和
  3. row_ids。

我不能讓他們一起工作,一起或分開。 例如,

row_numbers = [2, 13] 
sheet = smartsheet.Sheets.get_sheet(sheet_id, row_numbers) 
for row in sheet.rows: 
    print(row.row_number) 

返回所有行,而不僅僅是2和13 我做得不對或這是一個錯誤?

克雷格

回答

0

聲望不會讓我回應還,但史蒂夫W在正確的軌道上。

請參閱https://docs.python.org/3/reference/expressions.html#calls瞭解Python如何將參數分配給參數列表。在您的示例中,row_numbers正被分配給include參數。要做你想做的事情,你必須使用位置(sheet_id)和關鍵字(row_numbers)參數的組合。所有其他參數將使用由函數定義指定的默認值。

此代碼按預期工作,在回紙的第2和第13行:

row_numbers=[2,13] 
sheet = smartsheet.Sheets.get_sheet(sheet_id, row_numbers=row_numbers) 
+0

謝謝。我以爲我在嘗試2或3個過濾器時已經這樣做了,但我一定錯了。不是第一次。 –

1

方法的簽名是get_sheet(sheet_id, include=None, exclude=None, row_ids=None, row_numbers=None, column_ids=None, page_size=100, page=1)

docs

所以你的情況你需要像smartsheet.Sheets.get_sheet(sheet_id, None, None, None, row_numbers)

+0

我不相信這是真的。任何具有默認值的參數都不需要傳遞。另外,該定義不使用位置參數(要求*)。 –

+0

在你的例子中,python如何知道你期望你的列表被用作第五個參數的值? (另外,我的示例按預期工作) –

+0

@SteveWeil如何獲取所有行?似乎即使文檔說默認調用了所有的行,情況並非如此。有沒有辦法引用表單對象的總行數?或者以某種方式動態地表示sheetz的行長度? –