我正在和一些朋友一起做一个业余项目。我想做的是在Google Drive (或类似的服务)上保存一个电子表格,我和我的朋友将定期更新。我们希望使用Python和Jupyter Notebook可视化电子表格中的数据。我的朋友对编程完全不感兴趣,所以我希望他们能够在云中访问和运行笔记本,例如通过mybinder.org。
我从Google API中做了一些凭据的东西,当我在本地运行时,它工作得很好。然而,问题是,由于我的理解是我不应该将凭据上传到GitHub,mybinder.org无法获得从Google Drive读取电子表格所需的凭据。所以我的问题是我该如何解决这个问题?
一个想法是创建一个单独的Google帐户,只用于将电子表格放在那里。如果我这样做了,那么也许将凭据上传到GitHub就可以了?电子表格中的数据一点也不敏感。
发布于 2019-12-13 04:26:35
你可以通过选择“Sharing”下的Get shareable link将文件设置为与那些有链接的人共享,然后使用here描述的方法将文件带入活动的Jupyter会话中。(有关使用curl来实现此目的的更多信息,请访问here。)
要将其视为CSV,您可以基于here将可共享链接的URL结尾从edit?usp=sharing更改为export?exportFormat=csv。
要在Jupyter notebook单元格中执行curl,您需要在命令前面加上一个感叹号,以便在shell中运行任务。
然后将stdout定向到一个文件。
因此结合起来,代码单元的一般形式将是:
!curl https://docs.google.com/spreadsheets/d/<specific_GUID_key>/export?exportFormat=csv > output.csv可以将不带感叹号的命令放在start文件中,这样每次启动会话时都会检索当前数据,而不是运行代码从notebook单元格中检索它。有关用于Binderhubs/MyBinder.org的start配置文件的更多信息,请参见here。
您可能还有兴趣使用Voila让他们通过Jupyter笔记本支持的仪表板查看可视化。它也可以由MyBinder.org支持的会话产生。
https://stackoverflow.com/questions/58962872
复制相似问题