Python如何实现类似R的googlesheets4包便捷访问Google Sheets
完全不需要走手动创建Google Cloud项目、启用API、配置服务账号、下载JSON凭证那套繁琐流程,Python生态有成熟的工具可以实现和R侧完全一致的体验:首次运行自动弹出浏览器请求授权,确认后凭证自动缓存在本地,后续读写无需重复验证,代码量和R基本持平。
你之前搜到的复杂流程,都是面向无交互服务端部署的服务账号方案,本来就不是给个人本地做数据分析的场景设计的——R的googlesheets4之所以用起来简单,本质是用了tidyverse团队提前申请好的公共OAuth客户端权限,Python侧的同类工具也用了完全一样的逻辑,不需要用户自行去云平台配置任何资源。
首选方案:gspread(生态最成熟、维护最活跃)
gspread是目前Python生态使用最广的Google Sheets交互库,新版本已经内置了和googlesheets4逻辑一致的本地用户授权流程,搭配pandas可以直接把表格读成DataFrame,和R的read_sheet()体验对齐:
- 安装依赖,一行命令搞定:
pip install gspread pandas google-auth-oauthlib - 授权逻辑和R完全一致:
首次运行代码会自动唤起系统默认浏览器跳转到Google授权页,选择对应账号、确认授予表格读写权限即可,凭证会自动存在本地用户目录下,后续调用完全不需要重复验证。 - 对标R的读表代码,Python侧实现如下:
import gspread import pandas as pd gc = gspread.oauth() # 传入表格链接、指定工作表名,直接读取为DataFrame # head=1代表用第一行当表头,要跳过前N行的话把head设为N+1即可,和R的skip参数效果一致 sheet_as_df = pd.DataFrame( gc.open_by_url("你的Google Sheets链接") .worksheet("sheet_name") .get_all_records(head=1) )
注意:如果你的账号属于开启了高级安全策略的企业Google Workspace组织,可能会在授权时看到「应用未验证」的提示,这和R侧首次使用googlesheets4时的提示完全一致,点击「高级」-「继续访问」即可正常授权,不存在安全风险。
写回表格也只需要单函数调用,支持单元格更新、行列增删、权限配置等全量操作,完全覆盖googlesheets4的核心功能。
备选方案:ezsheets(封装程度更高、代码更短)
如果想要更极致的精简代码,可以选ezsheets,它的封装逻辑和googlesheets4几乎完全一致,授权交互也和R侧高度相似:
- 安装:
pip install ezsheets pandas - 读表示例:
import ezsheets import pandas as pd # 自动完成授权校验,本地缓存凭证 ss = ezsheets.Spreadsheet("你的表格链接/ID") # 读取指定工作表直接转DataFrame sheet_as_df = pd.DataFrame(ss["sheet_name"].getRecords())
这个库的API更简单,适合只需要做基础读写、不需要复杂表格操作的场景。
内容的提问来源于stack exchange,提问作者Brendan Collins

