从 Google Drive 获取文件而不将其下载到存储 - Python
Get file from GoogleDrive without downloading it to storage - 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 文件(电子表格、文档、幻灯片等)之外的文件。在本例中,它是一个文本文件。
- 您已经能够将云端硬盘 API 与 googleapis 一起用于 python。
- 您正在使用来自 https://www.thepythoncode.com/article/using-google-drive--api-in-python 的授权脚本。
在这种情况下,为了将文件内容取回内存,我建议使用requests
取回。为此,从 get_gdrive_service()
的 creds
检索访问令牌。
为了获取文件内容,使用了“Files:get”方法,增加了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.token
的 creds
来自 get_gdrive_service()
。
- 根据你的问题,我认为你要下载的文件是JSON数据。所以在上面的脚本中,下载的数据被解析为 JSON object.
- 在这种情况下,请导入
json
和 requests
。
注:
- 当返回的内容是JSON数据时,我觉得你也可以用
res.json()
代替res.text
。但是当出现JSONDecodeError
时,请检查res.text
. 的值
参考:
我在服务器上有一个 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 文件(电子表格、文档、幻灯片等)之外的文件。在本例中,它是一个文本文件。
- 来自
- 您已经能够将云端硬盘 API 与 googleapis 一起用于 python。
- 您正在使用来自 https://www.thepythoncode.com/article/using-google-drive--api-in-python 的授权脚本。
在这种情况下,为了将文件内容取回内存,我建议使用requests
取回。为此,从 get_gdrive_service()
的 creds
检索访问令牌。
为了获取文件内容,使用了“Files:get”方法,增加了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.token
的creds
来自get_gdrive_service()
。 - 根据你的问题,我认为你要下载的文件是JSON数据。所以在上面的脚本中,下载的数据被解析为 JSON object.
- 在这种情况下,请导入
json
和requests
。
注:
- 当返回的内容是JSON数据时,我觉得你也可以用
res.json()
代替res.text
。但是当出现JSONDecodeError
时,请检查res.text
. 的值