Google Drive API通过ID搜索文件夹返回400错误如何解决
错误原因
Google Drive API v3的files.list接口的q参数不支持id作为筛选字段,你写的q="id='FOLDER_ID'"不符合查询语法规范,所以会返回q参数无效的400错误。
正确实现方式
如果你已经明确知道目标文件夹的ID,不需要调用搜索接口,直接使用files.get接口即可获取对应文件夹的元数据,Python示例代码如下:
# 替换为你的目标文件夹ID FOLDER_ID = "你的文件夹实际ID" # 调用get接口直接获取资源 folder = service.files().get(fileId=FOLDER_ID, fields="*").execute() # 打印返回的文件夹信息验证 print(folder)
如果需要确认获取到的资源是文件夹而非普通文件,可以在获取后判断返回结果的mimeType字段:
if folder.get("mimeType") == "application/vnd.google-apps.folder": print("查询结果是有效的文件夹") else: print("ID对应的资源不是文件夹")
补充说明
files.list接口仅适用于按名称、父目录、类型、创建时间等允许的字段批量检索资源,已知明确ID的场景下直接用files.get性能更高,也不会出现语法错误。
内容的提问来源于stack exchange,提问作者Phantom of Krankor
相关产品推荐
相关产品推荐

