在 Google 驱动器 python 中搜索文件夹

Search for folder in Google Drive python

问题是我想将文件上传到 google 驱动器,我已经排序了,但问题是我需要在 gdrive 中获取名为 Location 的文件夹的 folder_id .通常我会使用 google 提供的库,但我无法使用 access_token 进行身份验证,因此我需要通过 REST api.

完成此操作

我已经尝试搜索它,但如果我这样做,总是会得到 Invalid Value

files = requests.get("https://www.googleapis.com/drive/v3/files?access_token=" + access_token + "&q=name%20%3D%20%27Location%27")

只是为了澄清如果我删除查询然后它起作用。

非常感谢您的帮助。

我认为在您的显示脚本中,即使名称为 Location 的文件和文件夹不存在,返回的值也会像 "files": [] 而不是 Invalid Value。并且,例如,当访问令牌无效时,会出现 "reason": "dailyLimitExceededUnreg""reason": "authError" 之类的错误。并且,当q的值无效时,会出现Invalid Value for "location": "q"的错误。

当我看到您的搜索查询时,它是 name = 'Location'。我认为这是正确的。虽然,我无法复制您的情况,但为了检索 Location 文件夹的文件夹 ID,您可以测试以下示例脚本吗?

示例脚本 1:

import requests
from urllib.parse import quote

access_token = "###" # Please set your access token.

q = "name='Location' and mimeType='application/vnd.google-apps.folder' and trashed=false"
files = requests.get(
    "https://www.googleapis.com/drive/v3/files?access_token="
    + access_token
    + "&q="
    + quote(q)
)
print(files.text)

示例脚本 2:

import requests
from urllib.parse import quote

access_token = "###" # Please set your access token.

q = "name='Location' and mimeType='application/vnd.google-apps.folder' and trashed=false"
files = requests.get(
    "https://www.googleapis.com/drive/v3/files?&q=" + quote(q),
    headers={"Authorization": "Bearer " + access_token},
)
print(files.text)

测试:

当上述脚本为运行时,返回如下值

{
 "kind": "drive#fileList",
 "incompleteSearch": false,
 "files": [
  {
   "kind": "drive#file",
   "id": "###",
   "name": "Location",
   "mimeType": "application/vnd.google-apps.folder"
  }
 ]
}

从这个结果中,您可以检索文件夹 ID。

参考: