当我尝试做一个batch_update gspread时错误

发布于 2025-02-10 03:39:04 字数 667 浏览 3 评论 0 原文

我在Gspread上有问题,我正在尝试做一个worksheet.batch_update,但是我收到此错误

文件“ d:\ proyectoreal-Statement \ venv \ lib \ lib \ site-packages \ gspread \ worksheet.py”,第903行,in dict(vr,range = absolute_range_name(self.title,vr ['rangy'])for数据中的VR TypeError:字符串索引必须是整数

我的代码是:

floor = [typeFloor #String, titleFloor #String, href #String, m2Floor #String, roomsFloor #Integer, priceFloor #Double]
listaFinal.append(floor)
rangeRows = 'A2' + ":F" + str(len(listaFinal))
worksheet.batch_update({
        'range': rangeRows,
        'values': listaFinal
                           })

任何知道我如何在工作表中添加大量信息,或者如何解决此问题?

I have a problem with gspread, i'm trying do a worksheet.batch_update, but i receive this error mesage

File "D:\ProyectoReal-Statement\venv\lib\site-packages\gspread\worksheet.py", line 903, in
dict(vr, range=absolute_range_name(self.title, vr["range"])) for vr in data
TypeError: string indices must be integers

My code is:

floor = [typeFloor #String, titleFloor #String, href #String, m2Floor #String, roomsFloor #Integer, priceFloor #Double]
listaFinal.append(floor)
rangeRows = 'A2' + ":F" + str(len(listaFinal))
worksheet.batch_update({
        'range': rangeRows,
        'values': listaFinal
                           })

Any idea how I can add a lot of information to my sheet or how I can solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尛丟丟 2025-02-17 03:39:04

修改点:

  • batch_update(data)的参数 data 是一个数组。
  • 在您的脚本中,当 len(ListAfinal) 1 时,该值是从单元格“ A1”中放置的。来自 rangerows ='a2' +“:f” + str(len(listAfinal)),我相信您想将值放在“ A2”中。

当这些点反映到您的脚本中时,如下所示。

修改后的脚本:

floor = [typeFloor #String, titleFloor #String, href #String, m2Floor #String, roomsFloor #Integer, priceFloor #Double]
listaFinal.append(floor)

rangeRows = 'A2' # Modified
worksheet.batch_update([{'range': rangeRows, 'values': listaFinal}], value_input_option="USER_ENTERED") # Modified

或者,我认为在您的脚本中,可以使用以下修改后的脚本。

floor = [typeFloor #String, titleFloor #String, href #String, m2Floor #String, roomsFloor #Integer, priceFloor #Double]
listaFinal.append(floor)

rangeRows = 'A2' # Modified
worksheet.update(rangeRows, listaFinal, value_input_option="USER_ENTERED") # Modified

注意:

  • 此修改后的脚本认为您的 listafinal 的值是2维数组。请注意。

参考:

Modification points:

  • The argument data of batch_update(data) is required to be an array.
  • In your script, when len(listaFinal) is 1, the value is put from the cell "A1". From rangeRows = 'A2' + ":F" + str(len(listaFinal)), I believe that you wanted to put the values from "A2".

When these points are reflected to your script, it becomes as follows.

Modified script:

floor = [typeFloor #String, titleFloor #String, href #String, m2Floor #String, roomsFloor #Integer, priceFloor #Double]
listaFinal.append(floor)

rangeRows = 'A2' # Modified
worksheet.batch_update([{'range': rangeRows, 'values': listaFinal}], value_input_option="USER_ENTERED") # Modified

Or, I thought that in your script, the following modified script might be able to be used.

floor = [typeFloor #String, titleFloor #String, href #String, m2Floor #String, roomsFloor #Integer, priceFloor #Double]
listaFinal.append(floor)

rangeRows = 'A2' # Modified
worksheet.update(rangeRows, listaFinal, value_input_option="USER_ENTERED") # Modified

Note:

  • This modified script supposes that your value of listaFinal is 2 dimensional array. Please be careful about this.

References:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文