使用 Worksheet.update 方法时“.append”和预定义列表之间的区别

Difference between ".append" and predefined lists when using the Worksheet.update method

我正在尝试使用 Worksheet.update 方法更新 sheet 的单元格 A2、A3、A4 中的值,代码如下:

sheet = USER_SPREADSHEET.worksheet('sheet_name')
values = []
for i in range(1,4):
    values.append([str(i)])

sheet.update('A2:A4', [values])    

我收到以下错误:

APIError: {'code': 400, 'message': 'Invalid values[1][0]: list_value {\n values {\n string_value: "1"\n }\n}\n', 'status': 'INVALID_ARGUMENT'}

我可以使用以下替代方法修复它,但我不知道是什么导致了差异:

sheet = USER_SPREADSHEET.worksheet('sheet_name')
value1 = '1'
value2 = '2'
value3 = '3'

sheet.update('A2:A4', [[value1],[value2],[value3]])

上面的方法有效,我不会得到错误,但它对我需要的东西没有用。

有什么想法吗?

这个答案怎么样?

修改点:

在您的以下脚本中,values[['1'], ['2'], ['3']]

values = []
for i in range(1,4):
    values.append([str(i)])

但是,当 sheet.update('A2:A4', [values]) 为 运行 时,[values][[['1'], ['2'], ['3']]]。我认为这就是你的问题的原因。所以如果要使用上层脚本,请修改如下。

修改后的脚本:

sheet = USER_SPREADSHEET.worksheet('sheet_name')
values = []
for i in range(1,4):
    values.append([str(i)])

sheet.update('A2:A4', values)  # Modified

参考: