如何配置SECRET路径在Python中获取client_email?代码报错求助
问题修正方案
错误原因
你错误地将SECRET赋值为已打开的文件对象(_io.TextIOWrapper类型),但open()函数和pygsheets.authorize()的service_file参数都需要接收文件路径字符串,而非已打开的文件句柄,这直接触发了类型不匹配的错误。另外代码里的json_load是笔误,应为标准库的json.load。
修正后的代码
import os import json import pygsheets # 拼接完整的密钥文件路径(字符串类型) secrets_base_path = os.environ['SECRETS_PATH'] secret_file_path = f"{secrets_base_path}/bbak_crewl.yaml" # 用路径字符串打开文件读取内容 with open(secret_file_path, "r") as jf: json_secrets = json.load(jf) # 获取client_email client_email = json_secrets['client_email'] # 传入路径字符串完成授权 gs = pygsheets.authorize(service_file=secret_file_path)
关键修正点
- 单独保存密钥文件的路径字符串,而非直接打开文件
- 修正
json_load为标准库的json.load - 给
pygsheets.authorize()传入路径字符串,而非文件对象
内容的提问来源于stack exchange,提问作者Kryz90
相关产品推荐
相关产品推荐

