【发布时间】:2021-06-20 09:00:01
【问题描述】:
我创建了一个 python 脚本,在我的谷歌表上设置一个过滤器。此过滤按预期工作。我现在有兴趣在设置此过滤器后抓取所有行。但是,当我得到 api 调用时,我得到了所有的行。
我认为我在拨打 get 跟注时提供范围是错误的。我以这种格式提供范围Sheet1!A:J。此范围表示从 A 到 J 列中的所有数据。但是,我不知道如何仅提供与过滤数据对应的范围。我在这篇文章 (https://sites.google.com/site/scriptsexamples/learn-by-example/google-sheets-api/filters#TOC-Get-filtered-rows) 中描述的谷歌应用脚本中看到了一种解决方案。然而,这是一个非常低效的解决方案。我不想在获取的数据上运行 for 循环。我想阻止获取所有数据,而宁愿只获取过滤后的数据。这可以从 python 脚本中做到吗?
我现在是这样做的
# print(json.dumps(body, indent=4))
resp = service.spreadsheets() \
.batchUpdate(spreadsheetId=SAMPLE_SPREADSHEET_ID, body=body).execute()
sheet = service.spreadsheets()
data = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID, range="Sheet1!A:J").execute()
print(data)
【问题讨论】:
-
在你的标题中,来自
How to get only filtered columns from google sheets to python script using google API?,看来你要检索only filtered columns。但是在您的问题中,从I'm now interested in grabbing all the rows after setting this filter.,您似乎想检索rows。所以我无法理解你的目标。我为此道歉。我可以问你目标的细节吗? -
我真的很抱歉这个错误。我的意思是行。例如,我只选择了具有
TEXT_EQ值"Open"的行,我想获取特定列中具有"Open"值的所有行。现在清楚了吗,还是我需要详细说明? -
感谢您的回复。从你的回复中,我提出了一个答案。你能确认一下吗?如果这不是您期望的结果,我深表歉意。
标签: python google-sheets google-sheets-api google-api-python-client