使用Python gsheets库调用Google Sheets API报client_secrets.json不存在错误
问题原因
核心问题是**~符号不会被自动解析为用户目录路径**:gsheets的from_files方法不会自动处理路径中的波浪线占位符,你传入的~/client_secrets.json会被直接作为普通字符串拼接成文件路径,在Windows系统下就会被解析为C:/Users/client_secrets.json,而不是你实际用户目录下的对应文件。
解决方案
你可以任选以下一种方式修正路径问题:
- 直接使用完整绝对路径
将代码中的路径替换为你实际的文件完整路径,注意替换示例中的你的Windows用户名为你自己的账号名:
from gsheets import Sheets sheets = Sheets.from_files('C:/Users/你的Windows用户名/client_secrets.json', 'C:/Users/你的Windows用户名/storage.json')
路径可以使用正斜杠,也可以用双反斜杠(\\)转义。
- 调用os模块自动展开用户目录
通过os.path.expanduser方法主动解析~占位符,无需手动写死用户名:
import os from gsheets import Sheets client_secrets_path = os.path.expanduser('~/client_secrets.json') storage_path = os.path.expanduser('~/storage.json') sheets = Sheets.from_files(client_secrets_path, storage_path)
其他排查方向
如果修改路径后仍然报错,可以逐一排查以下问题:
- 确认Windows资源管理器已开启「显示文件扩展名」,避免文件实际名为
client_secrets.json.txt(系统默认隐藏已知后缀导致的命名问题) - 确认你运行Python代码的用户,和存放
client_secrets.json的用户为同一账号,避免多用户场景下路径不匹配 - 检查
client_secrets.json的文件权限,确保当前运行Python的账号有该文件的读取权限
内容的提问来源于stack exchange,提问作者NicLovin
相关产品推荐
相关产品推荐

