为什么我使用 gspread (Python) 在 deleteDimision 请求中出现 TypeError

Why do i get TypeError in deleteDimision request using gspread (Python)

我正在尝试通过 gspread 添加行和删除列,但我一直收到 TypeError: string indices must be integers

代码如下:

writeTo = client.open_by_key(file['id']).worksheet('Sheet1')

request = {
    "requests": [
        {
            "deleteDimension": {
                "range": {
                    "sheetId": 0,
                    "dimension": "COLUMNS",
                    "startIndex": 8,
                    "endIndex": 26
                }
            }
        }
    ]
}

result = writeTo.batch_update(request)

我正在使用表格 API v3

我认为错误在 file['id']

您不能按字符对字符串进行切片,它们必须按整数进行切片,例如 file[5] 以获取文件中的前 4 个字母。

修改点:

  • 好像batch_update方法就是Classgspread.spreadsheet.Spreadsheet的方法。 Ref 当我看到你的脚本时,client.open_by_key(file['id']).worksheet('Sheet1') 返回 Class gspread.worksheet.Worksheet。我认为这是你的问题的原因。
    • 当我测试你的脚本时,我可以确认发生了与 TypeError: string indices must be integers 相同的错误。

当这些点体现在你的脚本中,就变成了下面这样。

发件人:

writeTo = client.open_by_key(file['id']).worksheet('Sheet1')

收件人:

writeTo = client.open_by_key(file['id'])

注:

  • 在此修改中,假设file['id']的值是有效的电子表格ID。请注意这一点。当出现类似Requested entity was not found.的错误时,请再次确认您的电子表格ID。

  • 而且,我认为您的请求正文是正确的。当我使用修改后的脚本测试你的请求体时,我确认没有错误发生。

参考: