2

我工作中的许多合作伙伴主要对电子表格感到满意,而不是 python、scala、java、SQL 等。这些人不是技术人员,但他们需要数据,而我的工作就是将数据掌握在他们手中。阅读 Google colaboratory 以及他们在 io 上的示例笔记本时,我发现了 gspread 和明显的身份验证简单性:

from google.colab import auth
auth.authenticate_user()

import gspread
from oauth2client.client import GoogleCredentials

gc = gspread.authorize(GoogleCredentials.get_application_default())

我们使用 Jupyter 的本地部署和几个自定义项来简化对 Presto、Hive、Spark 等的访问,所以我尝试在我们的环境中安装 colab 无济于事(它不是开源的)。我发现的下一个最佳方法是使用 oauth2,但这似乎需要一个 GCP 帐户才能访问Google Developer's Console。对于归结为使用远程服务进行身份验证的事情来说,这似乎过于复杂。

那么,请注意,您如何最轻松地在 jupyter 笔记本中使用 gspread 进行身份验证?

4

1 回答 1

2

我可以解释在 Colab 中进行这项工作的要素:

  • 调用authenticate_user调用gcloud auth login --enable-gdrive-access(与其他 args)。
  • 然后,我们将GOOGLE_APPLICATION_CREDENTIALS环境变量设置为这些凭据的导出副本。
  • 任何使用应用程序默认凭据的代码现在都可以发现这些凭据;特别是oauth2client找到它们(如上面的示例中所示)。

与往常一样,您应该小心放置凭据的位置;就 Colab 而言,我们有一个相当可控的系统,并且可以接受这种设置(尽管与所有事情一样,它可能在未来发生变化)。

于 2017-11-14T20:41:17.163 回答