【问题标题】:Difference between ".append" and predefined lists when using the Worksheet.update method使用 Worksheet.update 方法时“.append”和预定义列表之间的区别
【发布时间】:2020-05-24 20:48:38
【问题描述】:

我正在尝试使用 Worksheet.update 方法使用以下代码更新工作表的单元格 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': '无效值[1][0]: list_value {\n values {\n string_value: "1"\n }\n}\n', '状态':'INVALID_ARGUMENT'}

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

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

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

上述方法有效,我不会收到错误消息,但它对我的需要没有用。

有什么想法吗?

【问题讨论】:

    标签: python google-sheets google-sheets-api gspread


    【解决方案1】:

    这个答案怎么样?

    修改点:

    在您的以下脚本中,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
    

    参考:

    【讨论】:

    • 谢谢!!不敢相信我错过了:(
    • @shanik1986 欢迎您。谢谢你让我知道。我很高兴你的问题得到了解决。如果您的问题已解决,请按接受按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。我认为您的问题和解决方案将对他们有用。如果找不到按钮,请随时告诉我。 stackoverflow.com/help/accepted-answer
    猜你喜欢
    • 2019-02-20
    • 2014-12-07
    • 2019-05-16
    • 2017-12-07
    • 2022-01-14
    相关资源
    最近更新 更多