【发布时间】:2018-03-19 20:49:20
【问题描述】:
我正在使用 google drive API 下载 google 表格。不幸的是,我需要将它作为 HTML 下载以嵌入到电子邮件中,但是当我运行时
export_request = drivesrvc.files().export_media(fileId=file_id, mimeType='application/zip')
fh = io.FileIO("data.zip", "wb")
downloader = apiclient.http.MediaIoBaseDownload(fh, export_request)
done = False
while done is False:
status, done = downloader.next_chunk()
print
"Download %d%%." % int(status.progress() * 100)
请求通过,但 zip 文件为空!如果我尝试任何其他文件格式,它就可以正常工作,但由于某种原因,zip 总是为空,我需要获取 HTML。
文档指定上述调用应返回一个 Zip 存档,其中包含与 google 工作表中的工作表相对应的 HTML 文件,但我得到的只是一个空的 Zip 存档。
【问题讨论】:
-
为什么要检索 HTML 并将其保存为 .zip 文件?这不是一个有效的 zip 文件。
-
Google Drive API 可以选择将电子表格导出到 zip 存档中,其中包含与 Google 工作表中的工作表相对应的 HTML 文件。我正在尝试这样做,但它总是返回一个空的 zip 文件,而其他导出选项(excel、pdf、csv 等)工作得很好。没有直接下载 HTML 的选项,它必须始终以 zip 存档的形式出现。
-
我认为你的程序只是按照你说的做,把它下载为一个 zip 文件,而不是把它放在一个 zip 文件中并下载它。如果您将其下载为 mimetype img/jpeg 等,也会发生同样的情况。
-
根据他们 API 上的Google documentation,这应该返回一个包含 HTML 格式的电子表格的 zip。
标签: python python-3.x google-sheets google-drive-api