Google Drive API:drive_service.files().list() 上的 get() 方法有记录吗?
Google Drive API: the get() method on drive_service.files().list() documented?
this link Python 中有一个 get 方法:
response = drive_service.files().list(q="mimeType='image/jpeg'",
spaces='drive',
fields='nextPageToken, files(id, name)',
pageToken=page_token).execute()
for file in response.get('files', []):
我猜 get() 方法会得到一个文件列表,如果 none,它会 return 一个空列表,但是这在哪里记录的? API doc 没有。它只是说:
Returns:
An object of the form:
...
它没有记录任何方法。
files.list 方法 return 文件列表响应
{
"kind": "drive#fileList",
"nextPageToken": string,
"incompleteSearch": boolean,
"files": [
files Resource
]
}
文件列表响应包含由请求编辑的任何 file resources return 的列表。如果没有 returned,文件将是一个空列表。
默认情况下它不会return一个完整的文件资源对象,一些字段为空。
{
"kind": "drive#file",
"id": "1x8-vD-XEA5Spf3qp8x2wltablGF22Lpwup8VtxNY",
"name": "Experts Activity Dump go/ExpertsActivities",
"mimeType": "application/vnd.google-apps.spreadsheet"
},
解决这个问题的方法是添加一个可选参数 fields=* 然后你会得到一个完整的文件资源对象。但是,这可能会导致非常大的请求。
file.get 方法 return 是请求的文件 ID 的 file resources。所以你必须将你想要请求的文件的 file.id 传递给它。
背景信息原始版本。
在 Google 驱动器 v3 的原始版本中。 File.list 不适用于 fields=* 它只适用于 returned 默认字段,其他所有内容都为空。这迫使我们在每个需要完整响应的文件上使用 File.get。这已经得到修复,使它更容易并且只需要一次调用 api 来获取填充对象的所有属性。
问题仍然存在,这是一开始的错误还是按预期工作,他们对其进行了修补以停止占用我们所有的配额。
从你的脚本来看,我认为for file in response.get('files', []):
的get
是built-in类型的方法。 Ref
从 fields='nextPageToken, files(id, name)'
的 fields
,drive_service.files().list()
returns 一个像 {"nextPageToken": "###", "files": [{"id": "###", "name": "###"},,,]}
的对象。 Ref 当找不到 mimeType='image/jpeg'
的文件时,返回 {"files": []}
。
这种情况下,也可以使用response.get('files')
。
参考文献:
this link Python 中有一个 get 方法:
response = drive_service.files().list(q="mimeType='image/jpeg'",
spaces='drive',
fields='nextPageToken, files(id, name)',
pageToken=page_token).execute()
for file in response.get('files', []):
我猜 get() 方法会得到一个文件列表,如果 none,它会 return 一个空列表,但是这在哪里记录的? API doc 没有。它只是说:
Returns:
An object of the form:
...
它没有记录任何方法。
files.list 方法 return 文件列表响应
{
"kind": "drive#fileList",
"nextPageToken": string,
"incompleteSearch": boolean,
"files": [
files Resource
]
}
文件列表响应包含由请求编辑的任何 file resources return 的列表。如果没有 returned,文件将是一个空列表。
默认情况下它不会return一个完整的文件资源对象,一些字段为空。
{
"kind": "drive#file",
"id": "1x8-vD-XEA5Spf3qp8x2wltablGF22Lpwup8VtxNY",
"name": "Experts Activity Dump go/ExpertsActivities",
"mimeType": "application/vnd.google-apps.spreadsheet"
},
解决这个问题的方法是添加一个可选参数 fields=* 然后你会得到一个完整的文件资源对象。但是,这可能会导致非常大的请求。
file.get 方法 return 是请求的文件 ID 的 file resources。所以你必须将你想要请求的文件的 file.id 传递给它。
背景信息原始版本。
在 Google 驱动器 v3 的原始版本中。 File.list 不适用于 fields=* 它只适用于 returned 默认字段,其他所有内容都为空。这迫使我们在每个需要完整响应的文件上使用 File.get。这已经得到修复,使它更容易并且只需要一次调用 api 来获取填充对象的所有属性。
问题仍然存在,这是一开始的错误还是按预期工作,他们对其进行了修补以停止占用我们所有的配额。
从你的脚本来看,我认为for file in response.get('files', []):
的get
是built-in类型的方法。 Ref
从 fields='nextPageToken, files(id, name)'
的 fields
,drive_service.files().list()
returns 一个像 {"nextPageToken": "###", "files": [{"id": "###", "name": "###"},,,]}
的对象。 Ref 当找不到 mimeType='image/jpeg'
的文件时,返回 {"files": []}
。
这种情况下,也可以使用response.get('files')
。