簡體   English   中英

為什么我在使用 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方法是 Class gspread.spreadsheet.Spreadsheet的方法。 參考當我看到你的腳本時, 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。

  • 而且,我認為您的請求正文是正確的。 當我使用修改后的腳本測試您的請求正文時,我確認沒有發生錯誤。

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM