为什么谷歌API V3不会返回孩子?



我想使用Python获取Google云端硬盘中给定文件夹中所有文件/文件夹的列表。我使用的调用是这样的:

query = parentID + " in parents"
response = service.files().list(q=query,
                                spaces='drive',
                                fields='files(id, name, parents)').execute()

根据搜索文件文档和迁移到v3文档,我应该正确地执行此操作。但是当我运行代码时,我收到以下错误:

<HttpError 400 when requesting https://www.googleapis.com/drive/v3/files?q=[MY_PARENT_ID]+in+parents&spaces=drive&alt=json&fields=files%28id%2C+name%2C+parents%29 returned "Invalid Value">

我的查询有什么问题,我该如何正确调用它?

尝试了大约 15 个小时后,找到了以下解决方案:

只需更改查询变量,如下所示假设父 ID 为"0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk"

query="'0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk' in parents"

现在,它应该可以工作了。

即使您交换单引号和双引号,它也应该有效。您使用的结果是query="0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk in parents",而我们需要的是query="'0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk' in parents"

执行此操作的替代方法是:

parentId='0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk'
query="'" + "' in parents"

为什么会这样:-
如果您正确查看输出错误,它有一个http链接,看起来像这样:
https://www.googleapis.com/drive/v3/files?q=0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk+in+parents&spaces=drive&alt=json&fields=files%28id%2C+name%2C+parents%29


但是所需的 id 周围有单引号,看起来像这样:
https://www.googleapis.com/drive/v3/files?q='0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk'+in+parents&spaces=drive&alt=json&fields=files%28id%2C+name%2C+parents%29

相关内容

  • 没有找到相关文章

最新更新