从GoogleDrive获取文件而无需将其下载到存储设备-Python 示例脚本:注意:参考:

问题描述

我在服务器上运行了python脚本,我需要从GoogleDrive中获取一个json文件。 我想使用GoogleDrive API来获取文件,我知道文件名称,位置和ID,但是我只能找到将文件下载到存储区的代码样本。 json-content应该是我脚本中的字典,并且不得将文件下载到存储中。我是Python和GoogleDrive API的新手,所以我不知道如何自己管理它。 这是我关注的网站:https://www.thepythoncode.com/article/using-google-drive--api-in-python

我希望你能帮助我,因为我真的很需要。 预先感谢。

解决方法

我相信您的目标如下。

  • 您想直接将文件下载到内存中,而不使用python将数据创建为文件。
    • I need to get a json-file from my GoogleDrive.中,要下载的文件是Google Docs文件(电子表格,文档,幻灯片等)以外的文件。在这种情况下,它是一个文本文件。
  • 您已经可以将Drive API与googleapis结合使用以使用python。
  • 您正在使用脚本从https://www.thepythoncode.com/article/using-google-drive--api-in-python进行授权。

在这种情况下,为了将文件内容检索到内存中,我建议使用requests进行检索。为此,从creds的{​​{1}}中检索访问令牌。

为了检索文件内容,通过添加查询参数get_gdrive_service()使用“文件:获取”方法。

示例脚本:

alt=media
  • 在上述脚本中,file_id = "###" # Please set the file ID you want to download. access_token = creds.token url = "https://www.googleapis.com/drive/v3/files/" + file_id + "?alt=media" res = requests.get(url,headers={"Authorization": "Bearer " + access_token}) obj = json.loads(res.text) print(obj) 中的creds来自get_gdrive_service()
  • 从您的问题来看,我认为您要下载的文件是JSON数据。因此,在上面的脚本中,下载的数据被解析为JSON对象。
  • 在这种情况下,请导入creds.tokenjson

注意:

  • 当返回的内容是JSON数据时,我认为您也可以使用requests代替res.json()。但是当发生res.text时,请检查JSONDecodeError的值。

参考:

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...