3

我想使用Python来获取Google云端硬盘中给定文件夹中所有文件/文件夹的列表。我使用的电话是:为什么Google API V3不会返回孩子?

query = parentID + " in parents" 

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

按照search for files文档和migrating to 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"> 

我的查询出现了什么问题,以及如何正确调用它?

+0

误区标签。感谢您修复 – Elliptica

回答

4

尝试了15小时后,发现此解决方案:

只是改变查询变量如下 假设父ID是 '0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk'

query="'0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk' in parents" 

现在,它应该工作。

如果您交换你使用结果单,双quotes..what为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


但需要一个具有环绕标识单引号,看起来像这样:
https://www.googleapis.com/drive/v3/files?q='0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk'+in+parents&spaces=drive&alt=json&fields=files%28id%2C+name%2C+parents%29

+0

这与我所尝试的有何不同?例如。如果我在父母''和'parentId ='0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk''中做了'query = parentID +',那么父母''中的'query = parentID +'与父母''中的'query =''0B_hg54vjh34v5jh23gv5i2v35th2gv35v235kjvk''是一样的吗?或者是双引号字符串中单引号的区别? – Elliptica

+0

查看编辑答案 –

+0

谢谢!这很有道理 – Elliptica

相关问题