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

Python从GitHub加载服务账号JSON连接Google Sheet方法

解答

思路可行,但你写的示例代码有几处错误,修正后即可正常拉取GitHub上的凭证完成认证:

  • 缺少json模块导入,直接调用json.loads()会触发名称错误
  • gspread.service_account()参数使用错误:filename参数仅接受本地凭证文件的路径字符串,你已经将拉取到的内容解析为字典,需要改用info参数传入凭证信息
  • 建议增加HTTP请求状态校验,避免网络波动、仓库路径变更等导致请求失败时,后续逻辑抛出难以定位的异常

修正后代码

import json
import requests
import gspread
from gspread_formatting import *

json_url = 'https://raw.githubusercontent.com/username/main/myjson.json'
resp = requests.get(json_url)
# 请求失败时直接抛出对应HTTP错误
resp.raise_for_status()
# 解析返回内容为凭证字典
credential = json.loads(resp.text)
# 传入凭证字典完成认证
gc = gspread.service_account(info=credential)

注意事项

强烈不建议将服务账号私钥上传到公开GitHub仓库:私钥一旦公开,任何人都可以用它访问该服务账号被授权的所有Google资源(包括所有关联的Google Sheet)。如果你的仓库是公开状态,建议立刻前往Google Cloud控制台轮换该服务账号的私钥,避免资产损失。如果需要给客户统一提供凭证,优先选择私有仓库分发、单独传输凭证文件、或带鉴权的接口下发等更安全的方式,避免私钥完全公开泄露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:06:36