python-如何在Google Drive API v3中将XLSX转换为表格
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-如何在Google Drive API v3中将XLSX转换为表格,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2121字,纯文字阅读大概需要4分钟。
内容图文
![python-如何在Google Drive API v3中将XLSX转换为表格](/upload/InfoBanner/zyjiaocheng/683/4a5a60d2a2a44f4b874b52cafc767f58.jpg)
当我将xlsx文件和代码上传到Google云端硬盘时,我想自动将它们转换为Google电子表格.但是,虽然转换成功地用于csv文件,但我得到:
<HttpError 400 when requesting https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable&alt=json returned "Bad Request">
尝试上传xlsx时.
这是我的代码:
def upload_service(filepath, name="", description="", fileID="", parentID=""):
""" Uses a Resource (service) object to upload a file to drive. """
if service == "": authenticate_service()
if name == "":
name = str(os.path.basename(filepath).split(os.extsep)[0]) # Get from filepath
extension = str(os.path.basename(filepath).split(os.extsep)[1]).lower()
if extension == "csv": # CSV
mime_type = "text/csv"
elif extension in ["xls", "xlsx"]: # EXCEL
mime_type = "application/ms-excel"
else:
return
media_body = MediaFileUpload(filepath, mimetype=mime_type, resumable=True)
if parentID == "":
meta = dict(name=name, mimeType="application/vnd.google-apps.spreadsheet", description=description)
else:
meta = dict(name=name, mimeType="application/vnd.google-apps.spreadsheet", description=description, parents=[parentID])
if fileID == "": # CREATE
upload = service.files().create(
body=meta,
media_body=media_body).execute()
else: # REPLACE
upload = service.files().update(
body=meta,
media_body=media_body,
fileId=fileID).execute()
print ("\nFINISHED UPLOADING")
如何在v3中做到这一点?很清楚如何在v2中做到这一点,但在更新的API中却没有.
解决方法:
在APIv3中,您需要指定一个非常特定的MIME类型,以进行转换.
在https://developers.google.com/drive/v3/web/manage-uploads#importing_to_google_docs_types_wzxhzdk8wzxhzdk9,您会注意到以下语句:“关于资源的importFormats数组中可以动态获得支持的转换”.使用以下任一方法获取importFormats列表
GET https://www.googleapis.com/drive/v3/about?fields=importFormats\u0026amp;key={YOUR_API_KEY}
或转到https://developers.google.com/drive/v3/reference/about/get#try-it并输入importFormats
您会在响应中注意到:
"application/vnd.ms-excel": [
"application/vnd.google-apps.spreadsheet"
]
在您的代码中,使用:
elif extension in ["xls", "xlsx"]: # EXCEL
mime_type = "application/vnd.ms-excel"
(请注意附加的vnd.),它应该可以正常工作!
内容总结
以上是互联网集市为您收集整理的python-如何在Google Drive API v3中将XLSX转换为表格全部内容,希望文章能够帮你解决python-如何在Google Drive API v3中将XLSX转换为表格所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。