使用 smartsheet-python-SDK 写入多选项列表

问题描述 投票:0回答:1

我正在尝试写入智能表中位于多选项列表列中的单元格。我正在更新该值,但错误消息告诉我它缺少属性 cell.value

{“response”:{“statusCode”:400,“reason”:“错误请求”,“content”:{“detail”:{“index”:0,“rowId”:3036099537571716},“errorCode”:1012 , "message": "您的请求中缺少必需的对象属性:cell.value。", "refId": "qo1kjj"}}}

通过一些打印语句我知道变量正在更新,并且此代码适用于普通列。

workspace_name = 'API TEST'
sheet_name = 'test sheet'
lookup_value = 'b'
write_value = 'A'

write_column = 'first column'
lookup_column = 'multi picklist'

smart = init_smartsheet()
sheet_data, sheet_id = init_sheet(workspace_name, sheet_name, client)

write_column_id = sheet_data.get_column_by_title(write_column).id_
lookup_column_id = sheet_data.get_column_by_title(lookup_column).id_

updated_row = None
for row in sheet_data.rows:
    for cell in row.cells:
        if cell.column_id == lookup_column_id and cell.value == lookup_value:
            updated_row = row
            break
    if updated_row:
        break

for cell in updated_row.cells:
    if cell.column_id == write_column_id:
        cell.value = write_value
        break

updated_row.created_at = None
updated_row.modified_at = None
updated_row.row_number = None
updated_row.below = True


smart.Sheets.update_rows(sheet_id, [updated_row])```
python smartsheet-api
1个回答
0
投票

尝试这种格式

import smartsheet

smartsheetClient = smartsheet.Smartsheet('smartsheet token')
sheetid = 'sheet id'
sheet = smartsheetClient.Sheets.get_sheet(sheetid)

listOptions = ["bob","joe","sally", "matilda"]

column_name = "MultiColumnName"
columnid = None

for column in sheet.columns:
    if column.title == column_name:
        columnid = column.id
        break

#Column_Spec
cs=smartsheet.models.Column({

        'title':"columnTitle",
        'type':'PICKLIST',
        'options': listOptions,
        'index':2,
        'validation': True
        })

r=smartsheetClient.Sheets.update_column(sheetid,columnid,cs)
© www.soinside.com 2019 - 2024. All rights reserved.