You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyDrive调用Google Drive API时遇'Invalid query'错误求助

解决PyDrive中Google Drive查询语句无效的问题

问题原因

你的查询报错是因为查询共享驱动器文件时缺少corpora参数配置,同时需确保查询语法的引号嵌套正确。PyDrive基于Drive API v2,当启用supportsAllDrives和includeItemsFromAllDrives时,必须指定corpora='allDrives'才能正确跨驱动器查询。

修复后的代码

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

GoogleAuth.DEFAULT_SETTINGS['client_config_file'] = r"client_secrets.json"

gauth = GoogleAuth(settings_file='settings.yaml')
drive = GoogleDrive(gauth)

folder_id = "your-folder-id"
target_filename = "test"

# 正确的查询语句 + 必要的corpora参数
file_list = drive.ListFile({
    'q': f"name = '{target_filename}' and '{folder_id}' in parents and trashed=false",
    'supportsAllDrives': True,
    'includeItemsFromAllDrives': True,
    'corpora': 'allDrives'  # 必须添加该参数才能查询共享驱动器内容
}).GetList()

# 检查结果
if file_list:
    print(f"找到文件: {file_list[0]['title']}")
else:
    print("未找到指定名称的文件")

关键说明

  • corpora参数:查询包含共享驱动器的内容时,必须设置为allDrives,否则API会返回无效查询错误。
  • 查询语法:确保引号嵌套正确,使用f-string时外层用双引号包裹查询语句,内部字符串用单引号;反之亦可,避免引号冲突。
  • trashed=false:建议始终添加该条件,避免查询到已删除的文件。

内容的提问来源于stack exchange,提问作者Umair Ayub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 20:11:28