首页 > 解决方案 > 尝试使用 Python 的库在 GAPI Drive v3 中按文件 ID 查询时出错

问题描述

我正在使用 service.files().list() 并提供一个查询字符串来检索与给定列表中的 id 匹配的文件。然而,调用 service.files.list 出错,GAPI 返回错误代码 400。我正在使用使用访问令牌创建的服务对象。

我收到以下消息:

raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files?pageSize=50&fields=%2A&q=id+contains+%271234%27&spaces=drive&alt=json returned "Invalid Value". Details: "Invalid Value">

这是代码。是否可以通过列表 API 中的文件 ID 进行查询?我更喜欢这样做,而不是为每个单独的文件发出获取请求。

    # Create file query string
    queryStr = ""
    for i in range(len(fileIds)):
        queryStr += f"id='{fileIds[i]}'"
        if i != len(fileIds) - 1:
          queryStr += " or "

    # Build files array
    results = service.files().list(
      pageSize=50,
      fields="*",
      q=queryStr,
      spaces="drive"
    ).execute()
    print(results.get("files", [0])[0])

标签: google-apigoogle-drive-apigoogle-oauthgoogle-api-python-client

解决方案


您似乎正在尝试搜索id contains

如果您检查文档文件查询条款

您会发现 Id 不是可搜索的字段。

name contains car尝试类似的东西


推荐阅读