gspread 错误代码 400“范围('名称'!名称)超出网格限制”

Ctr*_*l S 5 python-2.7 raspbian gspread

我在带有 gspread 3.0.0 版的 Raspberry Pi 上使用 python 2.7。

当我使用 gspread 的 get_all_values() 函数时,出现以下错误:

File "/home/pi/DB/GSheets/GoogleSheets.py", line 121, in GetAll
    listOfLists = googleSheetName.worksheet(GSTabName).get_all_values()
  File "/home/pi/.local/lib/python2.7/site-packages/gspread/models.py", line 444, in get_all_values
    data = self.spreadsheet.values_get(self.title)
  File "/home/pi/.local/lib/python2.7/site-packages/gspread/models.py", line 110, in values_get
    r = self.client.request('get', url, params=params)
  File "/home/pi/.local/lib/python2.7/site-packages/gspread/client.py", line 79, in request
    raise APIError(response)
gspread.exceptions.APIError: {
  "error": {
    "code": 400,
    "message": "Range ('name'!name) exceeds grid limits. Max rows: 52, max columns: 17",
    "status": "INVALID_ARGUMENT"
  }
}
Run Code Online (Sandbox Code Playgroud)

我在以前版本的 gspread 中没有出现这个问题。当前版本,以前称为“v4”,似乎引入了这一点。据我所知,get_all_values 函数在两个版本之间没有变化。有谁知道可能会突然导致这种情况?

提前致谢!

编辑:
'name' 被用作工作表名称的占位符。

EDIT2:
注意:我已将项目连接到具有相同工作表(和名称)的全新 Google 工作表,但错误仍然发生。所有工作表名称都是字母数字,不包含空格或特殊字符。

EDIT3:
它被卡住的选项卡的名称采用“ABC1”的形式,但这是读取的第一个选项卡。

将其更改为“SheetA”后,if response.ok:client.py 中成功 4 次,然后 MySQLdb 由于其自己的分发文件中的 SQL 语法错误而崩溃(可能由用于构建命令的错误数据引起)。在将选项卡名称更改为“SheetA”之前,response.ok 会成功 3 次,然后失败。当我强制不抛出异常时,发送的数据(包含工作表值的列表列表)与未触发异常时发送的数据没有什么不同。

工作表的实际尺寸为 52 x 17(行 x 列)。APIError 中的维度始终与工作表的维度匹配。

EDIT4:
已发现:以下工作表(选项卡)名称格式引发 APIError(代码 400):“ABC1”、“ABC123”,但“ABCD123”或“ABC1D”有效。我还注意到,当我在具有无效名称的工作表之前移动具有有效名称(下面称为FirstSheet)的工作表/标签时,抛出的错误包括如下所示的FirstSheet名称:read.exceptions.APIError: { "error": { "code": 400, "message": "Range (FirstSheet!ABC123) exceeds grid limits. Max rows: 132, max columns: 17", "status": "INVALID_ARGUMENT" },但仅在无效时崩溃姓名。以前的有效工作表可以毫无问题地阅读。工作表的大小各不相同。

vis*_*ise 6

我遇到了同样的问题,尽管我的代码是用 ruby​​ 编写的。下划线不起作用。

发生的情况是,当文件名以整数结尾时,google 会感到困惑,例如您的工作表名称被称为ABC123. 所以ABC123X本来可以正常工作。

为了修复它,我不得不使用单引号将它转义 - FirstSheet!'ABC123'

我的代码看起来像这样:

service.get_spreadsheet(file_id, ranges: "'ABC123'")
Run Code Online (Sandbox Code Playgroud)