调用Google Sheets API的get_credentials()时遇KeyError: '_module'求助
解决Google Sheets Python快速入门中的密钥文件错误
首先得明确:你混淆了两种不同的Google API密钥文件类型,这是所有问题的根源。Google Sheets快速入门教程里用到的是OAuth 2.0客户端ID配置文件,不是普通的服务账号密钥,更不能是空文件。
你遇到的错误原因拆解
- 第一个错误
sheets.googleapis.com-python-quickstart.json: No such file or directory:程序默认会在当前项目目录寻找这个OAuth客户端配置文件,你没放置对应文件,自然会触发找不到文件的报错。 - 第二个错误
KeyError: '_module':你创建的空文件里没有OAuth配置必须的核心字段(_module是正确配置文件里的标识字段),程序读取时找不到关键信息,所以抛出键错误。 - 直接重命名自己的密钥文件没用:你的密钥文件属于服务账号类型,和OAuth客户端ID文件的结构完全不同,程序根本无法识别这种不匹配的配置。
正确的修复步骤
获取正确的OAuth客户端ID文件
- 回到Google Cloud Console的API凭据页面,找到你之前创建的OAuth客户端ID(注意不是服务账号密钥)。
- 点击该凭据的「下载JSON」按钮,将下载的文件保存到你的项目根目录,重命名为
sheets.googleapis.com-python-quickstart.json(或者保持下载的原文件名,修改代码里的文件路径)。 - 验证:这个JSON文件里应该包含
client_id、client_secret、redirect_uris这些字段,同时也会有_module字段,这才是程序需要的合法配置文件。
清理错误生成的文件
- 删除你之前在
.credentials文件夹里创建的空sheets.googleapis.com-python-quickstart.json文件,避免程序误读无效文件。 - 如果之前运行程序生成了错误的凭据缓存,也可以直接删除整个
.credentials文件夹,让程序重新走完整的授权流程。
- 删除你之前在
重新运行代码
- 现在执行代码,程序会自动打开浏览器引导你完成账号授权,授权成功后会在
.credentials文件夹生成正确的凭据缓存文件,之后就能正常调用Sheets API了。
- 现在执行代码,程序会自动打开浏览器引导你完成账号授权,授权成功后会在
额外提示
如果你想用服务账号密钥来访问Sheets API,那代码逻辑和快速入门的OAuth授权流程完全不同,需要改用google.oauth2.service_account模块来实现认证,而不是硬套快速入门的代码框架。如果是这种需求,你需要调整代码结构,而不是在配置文件上做无用功。
内容的提问来源于stack exchange,提问作者Rocketq
相关产品推荐
相关产品推荐

