在 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。
参考:
问题是我想将文件上传到 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。