Persistent Spreadsheet在gspread for Python中的特定Google Sheets电子



我正在使用gspread从数百个Google Sheets电子表格中收集数据。我解析Google Drive存储在本地目录中的文件,并获取指定文件夹中所有电子表格的URL。然后,我使用python包装器来遍历URL,并使用shell脚本包装器在连接出现故障时启动python包装器。

出现故障的原因之一是电子表格找不到错误。大约进行到一半时,我做了一次快速检查,发现我的电子表格中有21/139(约15%)总是出现这个错误(如果找不到五次,我会跳过电子表格)。我已经使用了iPython,并用open_by_url、open_by_key和open(带标题)手动测试了这些,但它们都返回了相同的SpreadsheetNotFound错误。最令人沮丧的部分是能够直接从我的错误消息中复制URL,将其粘贴到浏览器中,并且浏览器可以毫无问题地直接进入电子表格。第二个最令人沮丧的部分是,它在85%的电子表格中都能很好地工作,但85%并不能完全消除它

我甚至不确定这是可以解决的。我只是好奇是否还有其他人对gspread有过这种问题。

感谢您的反馈。

编辑1:Hm,失败的电子表格都是在2015年2月2日之前创建的。旧的工作表已更新为最新版本的Drive,这可能对API产生了影响。

来自Gspread文档:

ClientLogin is deprecated:
https://developers.google.com/identity/protocols/AuthForInstalledApps?csw=1
Authorization with email and password will stop working on April 20, 2015.
Please use oAuth2 authorization instead:
http://gspread.readthedocs.org/en/latest/oauth2.html

所以我认为您使用的是oAuth2。这意味着您需要将json-cert文件中的电子邮件地址添加到电子表格中。

使用OAuth2进行授权

参见第7点:

转到Google Sheets并用您的电子邮件共享您的电子表格在您的json_key["客户端电子邮件"]中。否则你会得到尝试打开电子表格时未发现异常。

相关内容

  • 没有找到相关文章

最新更新