python 3.8 和 gsheet batch_update 有问题吗?
Is there an issue on python 3.8 with gsheet batch_update?
按照以下问题和解决方案,,
我有以下确切代码
requests = {"requests": [{"updateCells": {"range": {"sheetId": worksheet._properties['sheetId']}, "fields": "*"}}]}
res = spreadsheet.batch_update(requests)
但我收到以下错误
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
谁有过这样的经历?你是怎么解决的?
修改点:
尽管不幸的是,我在你的问题中看不到你的整个脚本,但从你的错误消息来看,我认为你的问题可能是你在 [=53] 中使用了 batch_update
方法=] gspread.models.Worksheet。因为在我的环境下,我测试下面脚本的时候,跟你确认了同样的错误。
worksheet = spreadsheet.worksheet(sheetName)
requests = {"requests": [{"updateCells": {"range": {"sheetId": worksheet._properties['sheetId']}, "fields": "*"}}]}
res = worksheet.batch_update(requests)
print(res)
这种情况下,请使用classgspread.models.Spreadsheet中的batch_update
方法。
为了解决这个问题,下面的示例脚本怎么样?
示例脚本:
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)
- 请设置您的授权脚本。
注:
- 我用 python 3.8.3 和 gspread 3.6.0 测试了上面的脚本,我可以确认脚本有效。
参考文献:
按照以下问题和解决方案,
requests = {"requests": [{"updateCells": {"range": {"sheetId": worksheet._properties['sheetId']}, "fields": "*"}}]}
res = spreadsheet.batch_update(requests)
但我收到以下错误
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
谁有过这样的经历?你是怎么解决的?
修改点:
尽管不幸的是,我在你的问题中看不到你的整个脚本,但从你的错误消息来看,我认为你的问题可能是你在 [=53] 中使用了
batch_update
方法=] gspread.models.Worksheet。因为在我的环境下,我测试下面脚本的时候,跟你确认了同样的错误。worksheet = spreadsheet.worksheet(sheetName) requests = {"requests": [{"updateCells": {"range": {"sheetId": worksheet._properties['sheetId']}, "fields": "*"}}]} res = worksheet.batch_update(requests) print(res)
这种情况下,请使用classgspread.models.Spreadsheet中的
batch_update
方法。
为了解决这个问题,下面的示例脚本怎么样?
示例脚本:
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)
- 请设置您的授权脚本。
注:
- 我用 python 3.8.3 和 gspread 3.6.0 测试了上面的脚本,我可以确认脚本有效。