您能否提供一个 Python 示例,说明如何根据其键和工作表 ID ( gid
) 下载 Google Docs 电子表格?我不能。
我已经搜索了 API 的版本 1、2 和 3。我没有运气,我无法弄清楚他们复杂的类似于 ATOM 的提要 API,gdata.docs.service.DocsService._DownloadFile
私有方法说我未经授权,我不想自己编写一个完整的谷歌登录身份验证系统。由于沮丧,我正要刺伤自己的脸。
我有一些电子表格,我想像这样访问它们:
username = 'mygooglelogin@gmail.com'
password = getpass.getpass()
def get_spreadsheet(key, gid=0):
... (help!) ...
for row in get_spreadsheet('5a3c7f7dcee4b4f'):
cell1, cell2, cell3 = row
...
请救救我的脸。
更新 1:我尝试了以下方法,但没有任何组合Download()
或Export()
似乎有效。(DocsService
此处的文档)
import gdata.docs.service
import getpass
import os
import tempfile
import csv
def get_csv(file_path):
return csv.reader(file(file_path).readlines())
def get_spreadsheet(key, gid=0):
gd_client = gdata.docs.service.DocsService()
gd_client.email = 'xxxxxxxxx@gmail.com'
gd_client.password = getpass.getpass()
gd_client.ssl = False
gd_client.source = "My Fancy Spreadsheet Downloader"
gd_client.ProgrammaticLogin()
file_path = tempfile.mktemp(suffix='.csv')
uri = 'http://docs.google.com/feeds/documents/private/full/%s' % key
try:
entry = gd_client.GetDocumentListEntry(uri)
# XXXX - The following dies with RequestError "Unauthorized"
gd_client.Download(entry, file_path)
return get_csv(file_path)
finally:
try:
os.remove(file_path)
except OSError:
pass