我希望通过回应您的观点,认为文档非常差。但是,这是我迄今为止能够弄清楚的。
发布公共的
这是非常重要的,你的电子表格中的“发布到网上”,而不是仅仅是“在网络上公开。”第一个是通过转到“文件 - >发布到网络...”菜单项来实现的。第二个是通过点击电子表格左上角的“分享”按钮实现的。
我检查过了,你的电子表格中键='0Atncguwd4yTedEx3Nzd2aUZyNmVmZGRHY3Nmb3I2ZXc'只是“在网络上公开”。我制作了一个副本来玩弄我的示例代码。我的副本有一个关键字='0Aip8Kl9b7wdidFBzRGpEZkhoUlVPaEg2X0F2YWtwYkE',您将在稍后的示例代码中看到它。
这个“网上公开”与“网上发布”无稽之谈显然是一个普遍混淆的问题。它实际上记录在主API文档的"Visibilities and Projections"部分的红色框中。但是,阅读该文档确实很难。
可视性和预测
由于同样的文件说,还有比其他预测“满了。”事实上(无证),“完整”似乎不能很好地展现“公开”的可见性,这在设置未经认证的呼叫时也很重要。
您可以从pydocs中收集许多SpreadsheetsService对象上的方法可以采用“可见性”和“投影”参数的方法。我只知道“公共”和“私人”的可见性。如果你了解其他人,我也想知道他们。看来“公开”是你在进行未经认证的调用时应该使用的。
至于投影,它更加复杂。我知道“完整”,“基本”和“价值”预测。我只有幸运,通过阅读优秀的Tabletop javascript库的源代码发现了“价值”投影。而且,猜猜看,这是使事情发挥作用的秘密遗漏因素。
工作守则
下面是一些代码,你可以用它来从我的电子表格的副本查询表。
#!/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
** **提示我 发现它真的很有帮助与可怕的记录蟒蛇的API的使用在运行的Python解释器的dir()方法时要了解更多的信息种类,我可以从Python得到对象。在这种情况下,它不会有太大帮助,因为XML和基于URL的API上面的抽象很差。顺便说一句,我相信你会想要开始处理电子表格中的实际数据,所以我会继续前进,并在另一个指针中折腾。每一行组织成一个字典的数据可以使用GetListFeed(key,sheet_key,visibility ='public',projection ='values')找到。entry [0] .custom
Richard不知道这是否对你有帮助,但您可以将电子表格导出为Excel并使用xlrd(http://pypi.python.org/pypi/xlrd)读取数据。 –
谢谢!我想使用gdata,但文档是恶魔般的,没有人似乎知道如何使用它... – Richard