如何修复:update_rows() 操作不允许使用 linksOutToCells[]

How to fix: linksOutToCells[] are not allowed for update_rows() operation

我正在使用 Smartsheet Python SDK 并尝试更新智能表中的行,其中许多要更新的单元格都具有指向其他工作表的现有链接。我想用来自 pandas df 的数据更新单元格值,同时保持链接完好无损。当我尝试 update_rows 使用新的单元格值(但保持原始 links_out_to_cells 对象附加到原始单元格)时,我得到 API 错误 1032:"The attribute(s) cell.linksOutToCells[] are not allowed for this operation." 有谁知道这个问题的好的解决方法?

这是我的 evaluate_row_and_build_updates 函数(传入智能表行和来自 pandas df 的行 - 智能表中每一行的第一个值将随着更新保留)

def evaluate_row_and_build_updates(ss_row, df_ro):
    new_row = smartsheet.models.Row()
    new_row.id = ss_row.id
    new_row.cells = ss_row.cells

    empty_cell_lst = list(new_row.cells)[1:]
    for i in range(len(empty_cell_lst)):
        empty_cell_lst[i].value = df_row[1][i]

    return new_row

在请求更新 link 的源单元格上的单元格值时,您不必包含 linksOutToCells 对象。您可以只更新单元格值。 link 输出到其他 sheet 将保留在原位,您添加的新单元格值将 link 输出到其他 sheet。 它可能看起来像这样:

# Build new cell value
new_cell = smartsheet.models.Cell()
new_cell.column_id = <COLUMN_ID>
new_cell.value = "testing"

# Build the row to update
new_row = smartsheet.models.Row()
new_row.id = <ROW_ID>
new_row.cells.append(new_cell)

# Update rows
updated_row = smar_client.Sheets.update_rows(
  <SHEET_ID>,
  [new_row])

运行 link 熄灭的单元格上的代码将使单元格 link 保持原位。