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

PyCharm中Python调用Google Sheets API创建表格报AttributeError求助

错误原因

报错核心是凭证参数类型错误:
你在代码中直接将JSON凭证文件的路径字符串'conof.json'赋值给creds变量,但是googleapiclient.discovery.build()方法的credentials入参要求传入经过解析、合法有效的认证凭证对象,字符串类型没有authorize方法,因此触发属性错误。
你代码中的错误赋值行:

creds = 'conof.json'

这行代码仅存储了文件路径,没有完成凭证文件的加载、解析流程。

修复步骤
  • 校验凭证文件信息:先确认本地凭证文件的实际文件名、存放路径和代码中写的conof.json一致,避免文件名拼写错误(比如常见手误把credentials.json错写为conof.json),建议将凭证文件放在和运行脚本同级的目录下,减少路径解析问题。
  • 替换凭证加载逻辑:使用Google Auth库提供的方法加载JSON凭证,生成合法的凭证对象后再传入build()方法。如果运行代码时提示缺少google.oauth2模块,先执行pip install google-auth安装依赖。
  • 配置访问权限:如果使用服务账号类型的凭证,需要将凭证JSON中记录的client_email字段对应的邮箱地址,添加到目标Google表格的共享成员列表中,赋予编辑权限,否则认证通过后也会因权限不足无法操作表格。
修复后完整代码
from __future__ import print_function
from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

# Google Sheets API权限范围,创建/编辑表格需要该权限
SCOPES = ["https://www.googleapis.com/auth/spreadsheets"]

def create(title):
    # 加载服务账号凭证,替换为你本地实际的凭证文件路径
    creds = service_account.Credentials.from_service_account_file(
        "conof.json", scopes=SCOPES
    )
    try:
        service = build("sheets", "v4", credentials=creds)
        spreadsheet = {
            "properties": {
                "title": title
            }
        }
        spreadsheet = service.spreadsheets().create(
            body=spreadsheet, fields="spreadsheetId"
        ).execute()
        print(f"Spreadsheet ID: {spreadsheet.get('spreadsheetId')}")
        return spreadsheet.get("spreadsheetId")
    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

if __name__ == "__main__":
    create("mysheet1")

内容的提问来源于stack exchange,提问作者Asif Uz Zaman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:09:20