使用Drive v3将电子表格导出为text/csv会产生500内部错误

Ant*_*Qiu 6 python google-drive-api

我试图csv使用适用于Python的Google客户端库以格式导出Google电子表格:

# OAuth and setups...
req = g['service'].files().export_media(fileId=fileid, mimeType=MIMEType)
fh = io.BytesIO()
downloader = http.MediaIoBaseDownload(fh, req)
# Other file IO handling...
Run Code Online (Sandbox Code Playgroud)

这适用于MIMEType:application/pdf,MS Excel等.

根据谷歌的文档,text/csv支持.但是当我尝试发出请求时,服务器会给出一个500 Internal Error.

即使使用谷歌的Drive API游乐场,它也会出现同样的错误.

尝试:

就像在v2中一样,我添加了一个字段:

gid = 0

到指定工作表的请求,但那是一个糟糕的请求.

ger*_*imo 2

您只需要实现指数退避

查看ExponentialBackOffPolicy的文档。

这个想法是服务器只是暂时不可用,当它们尝试恢复时不应该被淹没。

默认实现需要回退 500 和 503 状态代码。如果需要不同的状态代码,子类可以覆盖。

以下是第一个链接中的指数退避实现的片段:

ExponentialBackOff backoff = ExponentialBackOff.builder()
.setInitialIntervalMillis(500)
.setMaxElapsedTimeMillis(900000)
.setMaxIntervalMillis(6000)
.setMultiplier(1.5)
.setRandomizationFactor(0.5)
.build();
request.setUnsuccessfulResponseHandler(new HttpBackOffUnsuccessfulResponseHandler(backoff));
Run Code Online (Sandbox Code Playgroud)

您可能需要查看此文档以了解ExponentialBackoff 实现的摘要。