如何用pygsheets快速批量获取Google Sheets单列单元格的颜色编码
问题原因与优化方案
你原有代码速度极慢的核心原因是循环内每次单独请求单个单元格的属性,2万余次独立API请求叠加Google Sheets API的频率限制,导致耗时被无限拉长。
pygsheets支持批量获取指定范围的所有单元格及对应的格式属性,仅需1-2次API请求即可完成整列数据拉取,优化后代码如下:
import pygsheets gc = pygsheets.authorize(service_file='credentials.json') sh = gc.open('golden dataset') wks = sh[0] # 一次性批量获取J列(第10列)所有单元格,returnas指定返回Cell对象列表,自动跳过末尾空单元格 cells = wks.get_col(10, returnas='cells', include_tailing_empty=False) # 直接遍历提取颜色编码 color_code = [cell.color for cell in cells]
如果需要固定拉取到第27627行,包含可能的空单元格,可以改用范围指定的写法:
# 明确指定拉取J1到J27627范围的单元格,返回结果为二维列表,每一行对应一个子列表 cells = wks.range('J1:J27627', returnas='cells') color_code = [cell[0].color for cell in cells]
优化后正常网络环境下仅需几秒到几十秒即可完成全部数据拉取。
内容的提问来源于stack exchange,提问作者Mehul Gupta
相关产品推荐
相关产品推荐

