我已经能够使用Python SDK for Smartsheet读取工作表,行,列和单元格,但我无法实际更改/写入/更新单元格值。我已经简化了我的代码了,我留下了这个:
import smartsheet
MySS = smartsheet.Smartsheet(MyApiKey)
single_row = MySS.Sheets.get_row(SHEET_ID, ROW_ID)
destination_cell = single_row.get_column(DST_COLUMN_ID)
destination_cell.value = "new value"
single_row.set_column(destination_cell.column_id, destination_cell)
MySS.Sheets.update_rows(SHEET_ID, ROW_ID)
运行此代码时出现以下错误:
Traceback (most recent call last):
File "C:/Users/XXXXXX/Python/Smartsheet/test.py", line 24, in <module>
MySS.Sheets.update_rows(SHEET_ID, ROW_ID)
File "C:\Users\XXXXXX\Python\virtualenv PC Smartsheet\lib\site-packages\smartsheet\sheets.py", line 961, in update_rows
for item in _op['json']:
TypeError: 'long' object is not iterable
我尝试将最后一行代码中的ROW_ID作为ROW_ID
和[ROW_ID]
以及[ROW_ID,]
传递,但仍然会遇到相同的错误。
我将此作为我的参考:http://smartsheet-platform.github.io/api-docs/?python#update-row(s)
我做错了什么?
答案 0 :(得分:3)
你真是太近了!而不是将ROW_ID
发送到update_rows()
,而您实际上想要在列表中发送row
对象。
因此,在您的情况下,您只想将最后一行更改为
MySS.Sheets.update_rows(SHEET_ID, [single_row])