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

Pygsheets调用.updated报'File not found',如何获取modifiedTime?

解决pygsheets获取Google表格修改时间时的404错误

首先咱们拆解下问题:你能正常完成表格的读写操作,但调用my_worksheet.updated时触发404,核心原因是pygsheets的这个属性依赖Google Drive API,而你大概率没启用Drive API,或者相关权限配置存在疏漏。虽然Sheets API能处理表格的读写,但获取文件修改时间需要调用Drive API的files.get接口——这是两个独立的API服务,权限和启用状态是分开的。

下面是具体的解决方案:

1. 启用Google Drive API(最可能解决问题)

这是最常见的触发该404的原因:你只启用了Google Sheets API,但没启用Drive API。操作步骤如下:

  • 打开Google Cloud Console,找到你当前使用的项目
  • 在搜索栏输入「Drive API」,定位到对应的服务
  • 点击「启用」按钮,等待服务启用完成

启用后重新运行你的代码,大概率能直接解决404问题。

2. 手动调用Drive API获取修改时间(绕开pygsheets的问题)

如果你暂时不想启用Drive API,或者想避开pygsheets旧版本的这个bug,可以直接用google-api-python-client调用Drive API来获取修改时间,代码示例如下:

from googleapiclient.discovery import build

def get_sheet_modified_time(sheet_id, credentials):
    # 构建Drive API服务实例
    drive_service = build('drive', 'v3', credentials=credentials)
    # 仅请求文件的modifiedTime字段,减少返回数据量
    file_info = drive_service.files().get(
        fileId=sheet_id,
        fields='modifiedTime'
    ).execute()
    return file_info.get('modifiedTime')

# 直接复用pygsheets客户端的服务账号凭证
last_updated = get_sheet_modified_time(my_key, my_client.oauth.service_account_credentials)
print(last_updated)

这个方法绕过了pygsheets的updated属性实现,利用你已有的服务账号凭证直接请求Drive API,只要服务账号有表格的访问权限,就能正常获取修改时间。

3. 可选:升级pygsheets版本(谨慎操作)

你当前使用的pygsheets 1.1.4是较旧的版本,后续版本可能修复了这个API调用的兼容性问题。不过如果你因为Team Drive支持或其他依赖限制不能升级,可以忽略这个选项。如果要升级,执行:

pip install --upgrade pygsheets

升级后再测试my_worksheet.updated是否正常工作。

额外排查点

  • 确认服务账号权限:虽然你能读写表格,但还是要确保服务账号的邮箱已被添加为表格的共享成员(编辑或查看权限均可)
  • 检查表格ID正确性:错误信息里的{API_KEY}应该是你的表格ID,确认你传入的my_key是正确的Google表格ID(不是API密钥)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:10:33