Можете ли вы привести пример Python для загрузки электронной таблицы Документов Google с указанием ее ключа и идентификатора таблицы (gid
)? Я не могу.
Я изучил версии 1, 2 и 3 API. Мне не повезло, я не могу выяснить их API-интерфейс, подобный ATOM-подобным каналам, приватный метод gdata.docs.service.DocsService._DownloadFile
говорит, что я не авторизован, и я не хочу сам писать всю систему аутентификации в Google Login. Я собираюсь нанести удар себе в лицо из-за разочарования.
У меня есть несколько таблиц, и я хочу получить к ним доступ следующим образом:
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