如何用Python requests库获取Google表格的行列具体数据?
从公开Google表格提取行列数据的可行方案
直接利用Google Sheets的公开导出接口,将表格转换为CSV格式是最便捷的方式,无需解析复杂的结构化响应。以下是具体实现步骤和代码示例:
核心思路
将Google Sheets的编辑URL转换为导出URL,指定格式为CSV(或TSV、Excel),通过requests获取CSV内容后,即可轻松解析成行和列的数值。
导出URL构造规则
- 对于指定工作表:将原URL中的
/edit替换为/export,添加参数?format=csv&gid=工作表ID(工作表ID即原URL中#gid=后的数字) - 对于默认工作表:将原URL中的
/edit替换为/export?format=csv(默认工作表gid通常为0,可省略)
代码实现
方法1:使用csv模块解析(原生Python)
import requests import csv # 示例:处理第一个表格(指定工作表) url = "https://docs.google.com/spreadsheets/d/1o8QeMOKWm4VeZ9VecgnL8BWaOlX5kdCDkXoAph37sQM/export?format=csv&gid=1691373423" response = requests.get(url) response.encoding = "utf-8" # 避免中文乱码 # 解析为行列数据 rows = list(csv.reader(response.text.splitlines())) # 遍历输出每一行的列值 for idx, row in enumerate(rows): print(f"第{idx+1}行:{row}")
方法2:使用pandas快速处理(适合数据分析)
如果后续需要处理数据,用pandas直接读取CSV会更高效:
import requests import pandas as pd # 示例:处理第二个表格(默认工作表) url = "https://docs.google.com/spreadsheets/d/1o8QeMOKWm4VeZ9VecgnL8BWaOlX5kdCDkXoAph37sQM/export?format=csv" df = pd.read_csv(url) # 查看前5行数据 print(df.head()) # 按行列获取数值示例 print(f"第2行第3列数值:{df.iloc[1,2]}")
处理第三个表格
直接替换URL即可:
url = "https://docs.google.com/spreadsheets/d/1udwn61l_FZsFsEuU8CMVkvU2SpwPW3Krt1OML3cYMYk/export?format=csv" # 后续解析逻辑同上
注意事项
- 确保目标表格已设置为公开可查看,否则
requests会返回403权限错误 - 若需访问私有表格,需使用Google Sheets API并完成OAuth2认证(此场景需额外配置,公开表格无需)
- 除CSV外,还可指定
format=tsv(制表符分隔)或format=xlsx(Excel格式),根据需求调整参数
内容的提问来源于stack exchange,提问作者Cacho Volpa
相关产品推荐
相关产品推荐

