python - Python gspread range 格式为“A2:A”,A1 表示法
问题描述
在 gspread 中,如果我执行以下操作
wks.range('D2:D13')
我没有错误。
但是,如果我想从第 2 行获取“D”列中的所有行,使用 A1 表示法会出现错误:
wks.range('D2:D')
错误:
raise IncorrectCellLabel(label)
gspread.exceptions.IncorrectCellLabel: D
根据 gspread api 参考,Worksheet.range 应该使用 A1 notation。根据Google 的 Sheets API 文档,我正在尝试做的似乎是正确的。
这里发生了什么?gspread 不支持该格式还是我用错了?
解决方案
前言
在调查这个特别的问题时,我发现没有一种非常清晰的gspread方法可以从 Google Worksheet 中获取 A1 符号的单个范围,这真的很奇怪,但我相信这是有原因的。
如文档中所述,gspread 的创建者希望减少对 Google Sheet API 的 API 调用:https ://docs.gspread.org/en/latest/user-guide.html#getting-all-values-from-一行或一列。
答案
无论如何,有一个鬼鬼祟祟的 gspread 提供的方法可以通过batch_get方法获得一个或多个特定范围。你应该试试:
wks.batch_get( ('D2:D',) )[0]
更好的是,如果您想一次获得几个不同的范围(通过一个 API 调用),您可以调用:
ranges = wks.batch_get( ('D2:D', 'A2:A') )
推荐阅读
- wordpress - 在 Wordpress 中更改选项卡标题
- javascript - Scrapfly 服务不会将值替换为输入字段
- c++ - 如何通过 C++ 手动构造 Napi::CallbackInfo 对象?
- artifactory - 使用 Docker compose 安装 Xray 并使用 Jfrog Artifcatory 进行配置
- python - 防止此代码中 I 和 V 的重复跟踪?
- docker - Docker绕过防火墙规则
- flutter - 如何像flutter中的浏览器一样动态生成tab和page?
- azure - azure 门户订阅过滤器跳转到设置
- php - 向不同的类函数提交不同的表单
- java - 覆盖滑动拼图问题的哈希码函数