Esi*_*ngs 3 python google-sheets python-3.x gspread google-sheets-api
按照以下问题和解决方案,如何使用 python gspreadsheet 重置所有行和列数据,我有以下确切的代码
requests = {"requests": [{"updateCells": {"range": {"sheetId": worksheet._properties['sheetId']}, "fields": "*"}}]}
res = spreadsheet.batch_update(requests)
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误
File "/root/.local/lib/python3.8/site-packages/gspread/models.py", line 1171, in batch_update data = [ File "/root/.local/lib/python3.8/site-packages/gspread/models.py", line 1172, in <listcomp> dict(vr, range=absolute_range_name(self.title, vr['range'])) TypeError: string indices must be integers
Run Code Online (Sandbox Code Playgroud)
有谁有过这样的经历吗?你是如何解决的?
虽然不幸的是,我无法在您的问题中看到您的整个脚本,但从您的错误消息来看,我认为您的问题可能是您正在使用batch_updategspread.models.Worksheet 类中的方法。因为在我的环境下,当我测试下面的脚本时,我和你确认了同样的错误。
worksheet = spreadsheet.worksheet(sheetName)
requests = {"requests": [{"updateCells": {"range": {"sheetId": worksheet._properties['sheetId']}, "fields": "*"}}]}
res = worksheet.batch_update(requests)
print(res)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,请使用batch_updategspread.models.Spreadsheet 类中的方法。
为了解决这个问题,下面的示例脚本怎么样?
client = gspread.authorize(credentials)
spreadsheetId = "###" # Please set Spreadsheet ID.
sheetName = "###" # Please set sheet name.
spreadsheet = client.open_by_key(spreadsheetId)
worksheet = spreadsheet.worksheet(sheetName)
requests = {"requests": [{"updateCells": {"range": {"sheetId": worksheet._properties['sheetId']}, "fields": "*"}}]}
res = spreadsheet.batch_update(requests)
Run Code Online (Sandbox Code Playgroud)