gpt4 book ai didi

python - 使用 gdata 库从公共(public) Google 电子表格中检索数据?

转载 作者:太空狗 更新时间:2023-10-29 21:20:19 24 4
gpt4 key购买 nike

我正在使用 Python 并尝试从公共(public) Google 电子表格 (this one) 检索数据,但在使用 the developer documentation 时遇到了一些困难.

我想尽可能避免客户端身份验证,因为它是一个公共(public)电子表格。

这是我当前的代码,带有 gdata 库:

client = gdata.spreadsheet.service.SpreadsheetsService()  
key = '0Atncguwd4yTedEx3Nzd2aUZyNmVmZGRHY3Nmb3I2ZXc'
worksheets_feed = client.GetWorksheetsFeed(key)

这在第 3 行失败并显示 BadStatusLine。

如何从电子表格中读取数据?

最佳答案

我想首先回应您的看法,即文档真的很差。但是,这是我到目前为止能够弄清楚的。

公开发布

将您的电子表格“发布到网络”而不是仅仅“在网络上公开”非常重要。第一个是通过转到“文件 -> 发布到 Web ...”菜单项来实现的。第二个是通过单击电子表格左上角的“共享”按钮实现的。

我检查过,您的电子表格的键 = '0Atncguwd4yTedEx3Nzd2aUZyNmVmZGRHY3Nmb3I2ZXc' 只是“在网络上公开”。我制作了它的副本以供我的示例代码使用。我的副本有一个 key = '0Aip8Kl9b7wdidFBzRGpEZkhoUlVPaEg2X0F2YWtwYkE',稍后您将在我的示例代码中看到。

这种“在网络上公开”与“在网络上发布”的废话显然是一个常见的混淆点。它实际上记录在 "Visibilities and Projections" 中的红色框中。主要 API 文档的部分。但是,阅读该文档真的很难。

可见性和预测

正如同一份文件所说,除了“完整”之外还有其他预测。事实上(未记录),“完整”似乎不能很好地发挥“公开”的可见性,这在进行未经身份验证的调用时也很重要。

您可以从 pydocs 中收集到一些信息SpreadsheetsService 对象上的许多方法都可以采用“visibility”和“projection”参数。我只知道“公共(public)”和“私有(private)”可见性。如果您了解其他任何人,我也想了解他们。在进行未经身份验证的调用时,似乎应该使用“public”。

至于投影,就更复杂了。我知道“完整”、“基本”和“值(value)”预测。我很幸运,通过阅读优秀的源代码找到了“值”投影 Tabletop javascript 库。而且,你猜怎么着,这就是使事情顺利进行的 secret 缺失成分。

工作代码

这是一些代码,您可以使用这些代码从我的电子表格副本中查询工作表。

#!/usr/bin/python
from gdata.spreadsheet.service import SpreadsheetsService

key = '0Aip8Kl9b7wdidFBzRGpEZkhoUlVPaEg2X0F2YWtwYkE'

client = SpreadsheetsService()
feed = client.GetWorksheetsFeed(key, visibility='public', projection='basic')

for sheet in feed.entry:
print sheet.title.text

** 提示 **我发现在使用记录非常丰富的 python API 时使用 dir() 真的很有帮助正在运行的 python 解释器中的方法,以了解有关我可以从 python 对象获得的信息类型的更多信息。在这种情况下,它并没有多大帮助,因为基于 XML 和 URL 的 API 之上的抽象非常差。

顺便说一句,我确定您会想要开始处理电子表格中的实际数据,所以我将继续并抛出一个指针。组织为字典的每一行的数据可以使用 GetListFeed(key, sheet_key, visibility='public', projection='values').entry[0].custom

关于python - 使用 gdata 库从公共(public) Google 电子表格中检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com