Google Drive API下载表问题

2024-03-28 08:59:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Google Drive API导出Google工作表并将其保存在本地,但遇到了以下问题:

其中一张工作表下载不正确。我不确定这是否是因为它的大小或复杂性,但通过在文档中使用建议的代码,该过程会卡住几分钟,然后超时。在

下面是documentation中指示的代码,对我的工作流程做了一些小的更改

file_id = '0BwwA4oUTeiV1UVNwOHItT0xfa2M'  # Changed to my file id
mimetype = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'  # MS Excel
request = drive_service.files().export_media(fileId=file_id, mimeType=mimetype)
fh = io.BytesIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while not done:
    status, done = downloader.next_chunk()
if done:
    # process the downloaded file

因为我不需要所有的工作表,所以我尝试了另一种解决方案:使用HTTP请求手动请求导出,并在URL上设置gid=0参数以指示所需的工作表。在

首先,我尝试了简单的getAPI调用,以确保它能正常工作,如下所示:

^{pr2}$

这很好,我得到了一个关于文件细节的回复。在

之后,我尝试了下面的export请求,但是我总是得到一个TEMPORARY REDIRECT响应,即使请求与文档中的相同。在

curl https://www.googleapis.com/drive/v3/files/<my_file_id>/export?mimeType=application%2Fvnd.openxmlformats-officedocument.spreadsheetml.sheet&access_token=<my_access_token>
<HTML>
<HEAD>
<TITLE>Temporary Redirect</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Temporary Redirect</H1>
The document has moved <A HREF="big_giant_huge_url">here</A>.
</BODY>
</HTML>

所以我的问题是:

  • 有没有方法可以使用官方的pythonapi指定要下载的工作表或解决下载问题?在
  • 有人知道我的HTTP请求中Temporary Redirect的原因吗?在
  • 有没有其他方法可以下载这些表格?在

谢谢!在


Tags: 代码文档idmygoogleexportredirectfile
1条回答
网友
1楼 · 发布于 2024-03-28 08:59:28

所以,在很长一段时间之后,为了解决这个问题,我们没有找到一个解决方案,最终用了一种不同的方法来解决这个问题。在

我们是这样做的:

  • 搜索了所有我们想要的独特床单
  • 将它们复制(链接)到驱动器上的单独文件中
  • 使用API分别获取这些文件

这导致了成功,因为这是一个使用官方api的非常直接的解决方案。在

把所有东西都复制到其他文件有点麻烦,但现在看来这是唯一的方法。在

相关问题 更多 >