You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询无需共享至服务账户的Python读取Google Sheet实现方案

解决方案:无需手动共享Google Sheet的读取方法

一、使用API Key读取公开共享的Google Sheet

若可将目标Sheet设置为「知道链接的任何人都可以查看」,就能用API Key直接读取,无需OAuth授权或手动共享操作。

实现步骤

  1. 在GCP控制台创建API Key:
    • 启用Google Sheets API,进入「凭据」页面创建「API密钥」
  2. 配置Sheet权限:
    • 打开目标Sheet,点击右上角「共享」,设置权限为「知道链接的任何人都可以查看」
  3. Python读取代码示例:
    import pandas as pd
    
    # 替换为你的API Key和Sheet ID(URL中的长串字符)
    API_KEY = "your_api_key_here"
    SHEET_ID = "your_sheet_id_here"
    SHEET_NAME = "Sheet1"
    
    # 构造Sheets API请求地址
    url = f"https://sheets.googleapis.com/v4/spreadsheets/{SHEET_ID}/values/{SHEET_NAME}?key={API_KEY}"
    
    # 读取并转换数据
    df = pd.read_json(url)
    data = df['values'].tolist()
    print(data)
    

二、私有Sheet无需逐个共享的方案(域范围委派)

若Sheet为公司内部私有资源,无法设为公开,可使用域范围委派(仅适用于Google Workspace/G Suite域管理员),让服务账户有权访问域内所有Sheet,无需手动逐个共享。

实现步骤

  1. 配置域范围委派:
    • 以域管理员身份登录Google Workspace Admin控制台
    • 找到目标服务账户,启用「域范围委派」,添加OAuth范围:https://www.googleapis.com/auth/spreadsheets.readonly(只读)或https://www.googleapis.com/auth/spreadsheets(读写)
  2. 修改Python代码模拟域内用户访问:
    import gspread
    from google.oauth2 import service_account
    
    SERVICE_ACCOUNT_FILE = 'service_account.json'
    # 替换为域内有权访问目标Sheet的用户邮箱
    USER_EMAIL = "user@your-domain.com"
    
    SCOPES = ['https://www.googleapis.com/auth/spreadsheets.readonly']
    
    # 创建委派凭据
    creds = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)
    delegated_creds = creds.with_subject(USER_EMAIL)
    
    # 授权读取Sheet
    client = gspread.authorize(delegated_creds)
    sheet = client.open('Sample').sheet1
    data = sheet.get_all_values()
    print(data)
    

注意事项

  • API Key仅适用于公开Sheet,存在数据泄露风险,需根据业务场景谨慎使用
  • 域范围委派需要Google Workspace管理员权限,且服务账户需被授予对应访问范围
  • 若既不能设Sheet为公开,又无Workspace管理员权限,可考虑用Drive API编写批量共享脚本,自动将所有目标Sheet共享给服务账户,减少人工操作

内容的提问来源于stack exchange,提问作者Mohit Aswani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:15:24