某些工作簿上的gspread“SpreadsheetNotFound”

2024-10-09 00:27:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个googledrive文件夹,里面有几百本工作簿。我想循环查看列表并更新数据。由于某些原因,gspread只能打开某些工作簿,而不能打开其他工作簿。我最近才遇到这个问题。在

这不是访问问题,因为所有内容都在同一个文件夹中。在

当我open_by_key(key)时,我得到raise SpreadsheetNotFound。但是当我把密钥粘贴到一个URL中时,工作表就打开了。也就是说这不是钥匙。在

这是怎么回事?我很惊讶其他人没有遇到这个错误。在

我是否达到了我可以拥有的Google页面数量的限制?我有大约两千。在

更新:我发现,如果我进入工作手册并四处查看,工作表就会被识别出来??!!这是什么意思?最近床单不工作吗???在

另外,如果我尝试使用Google App脚本SpreadsheetApp.openById,那么密钥就可以识别了!所以床单在那里,我就是不能用gspread打开它。在gspread识别之前,我已经使用Google脚本先在工作表中写入内容。在

我可以使用pygsheets打开工作表,但由于它是新的,而且有缺陷,所以我不能使用它。看起来像是APIv4问题?某些工作表无法用APIv3打开?在

更新:这是另一个观察。一旦用APIv4打开工作簿,就不能再使用V3打开它了。在


Tags: 数据key脚本文件夹内容列表bygoogle
3条回答

我的猜测是,您可能达到了Google Drive API限制,即1000,不能更改为更高的值。在

解决方案1:

您可以通过访问项目页面来尝试申请更高的配额:
1-仪表板
2-配额
3-点击“每位用户每100秒查询数”后的铅笔 4-然后单击“申请更高配额
5-您将在https://support.google.com/code/contact/drive_quota结束,但是如果您按照上面的步骤操作,表单将已经填充project和{}的详细信息。在


解决方案2:

我的账户上只有几张电子表格,但问题是通过以下方式解决的:

1-打开json密钥文件(projectname-ca997255dada.json
2-找到client_email的值,即:

"client_email": "278348728734832-compute@developer.gserviceaccount.com",

3-与该电子邮件共享您的工作表

注意:您可以尝试只更改一个无法打开的电子表格,并检查上述方法是否解决了问题。在

我反复遇到这个问题。我找到的唯一一致的解决方案是与api用户“重新共享”文件。它已经将api用户列为shared(因为它和其他东西都在同一个共享文件夹中),但是在“重新共享”之后,我就可以与gspread连接了。在

基于此,我认为这实际上可能是一个权限问题(Google在通过APIv3访问API用户时未能为其注册正确的权限)。在

这听起来像是您在gspread中遇到了一个限制。在

即使按键打开电子表格,gspread仍然首先使用https://spreadsheets.google.com/feeds/spreadsheets/private/full下载所有明确共享的工作表的提要,并检查您提供的键是否在其中。在

问题是这个提要只列出了500个文件。如果您的密钥不在这500个中,那么即使电子表格是可访问的,您也将得到SpreadsheetNotFound。在

我猜feed是按最近使用的顺序排序的,这就解释了为什么编辑它使它再次对gspread可见。在

相关问题是here。在

相关问题 更多 >

    热门问题