Google Drive python客户端/如何筛选具有“ownedByMe”和“properties”的文件列表?

2024-06-01 07:01:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我成功地使用q参数来过滤Google Drive中名称不是给定值的文件,代码如下

    prefix = 'forbidden_name'
    res = files.list(
                     q="name != '" + prefix + "'",
                     pageSize=800, pageToken=None,
                     fields='nextPageToken, files(id, name, parents, properties, ownedByMe)').execute()

我使用相同的服务帐户创建这些文件并列出它们

然后,我只想筛选由该服务帐户创建的服务。 为此,我尝试使用ownedByMe参数,如Google Documentation (Google API v3)中所列

但我得到以下错误

    res = files.list(
                     q="ownedByMe = true",
                     pageSize=800, pageToken=None,
                     fields='nextPageToken, files(id, name, parents, properties, ownedByMe)').execute()
HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files?q=ownedByMe+%3D+true&pageSize=800&fields=nextPageToken%2C+files%28id%2C+name%2C+parents%2C+properties%2C+ownedByMe%29&alt=json returned "Invalid Value">

另外,当尝试在properties上进行筛选时,例如使用一个键data_type,我得到以下错误

    res = files.list(
                     q="properties['data_type'] = 'whatever'",
                     pageSize=800, pageToken=None,
                     fields='nextPageToken, files(id, name, parents, properties, ownedByMe)').execute()
HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files?q=properties%5B%27data_type%27%5D+%3D+%27whatever%27&pageSize=800&fields=nextPageToken%2C+files%28id%2C+name%2C+parents%2C+properties%2C+ownedByMe%29&alt=json returned "Invalid Value">

拜托,你知道我的代码出了什么问题吗? 非常感谢你的帮助! 最好的


Tags: namenoneidfieldsgoogleresfilesproperties
1条回答
网友
1楼 · 发布于 2024-06-01 07:01:16

不幸的是,在当前阶段,没有查询ownedByMe = trueproperties['data_type'] = 'whatever'。我认为这就是你发行Invalid Value的原因。那么下面的修改呢

模式1:

在这种模式中,实现了ownedByMe = true。在这种情况下,请使用以下搜索查询

修改的搜索查询:

'###' in owners
  • 在您的情况下,###是服务帐户的电子邮件

模式2:

在这种模式中,实现了properties['data_type'] = 'whatever'。在这种情况下,请使用以下搜索查询

修改的搜索查询:

properties has {key='data_type' and value='whatever'}

参考资料:

相关问题 更多 >