运行以下代码时,出现此错误。
{'错误':{'代码':400,'消息':'接收到无效的JSON有效负载。未知名称“ album_id”:原型字段未重复,无法启动列表。”,“状态”:“ INVALID_ARGUMENT”,“详细信息”:[{'@ type”:“ type.googleapis.com/google.rpc.BadRequest” ,'fieldViolations':[{'description':'接收到无效的JSON有效负载。未知名称“ album_id”:原始字段未重复,无法启动列表。'}]}]}}}
如果我删除“ albumId”:[“相册代码”],它将正常工作并返回
10个新项目,共10个
def _actually_list_media_items(session):
ret = []
params = {
'fields': 'mediaItems(id,baseUrl,filename,mimeType,productUrl),nextPageToken',
}
search_json = {
"pageSize": 10,
"albumId": ["<albumid code>"],
"filters": {
"includeArchivedMedia": False,
"contentFilter": {
"excludedContentCategories": [
"DOCUMENTS",
"RECEIPTS",
"SCREENSHOTS",
"UTILITY",
"WHITEBOARDS",
]
},
"mediaTypeFilter": {
"mediaTypes": [
"PHOTO",
],
},
},
}
tmp = 0
while tmp < 1:
rsp = session.post(
'https://photoslibrary.googleapis.com/v1/mediaItems:search',
params=params,
json=search_json,
).json()
if 'error' in rsp:
print(rsp)
cur = [m for m in rsp.get('mediaItems', [])]
ret += cur
print(f'{len(cur)} new items, total {len(ret)}')
pageToken = rsp.get('nextPageToken')
if pageToken is None:
break
params['pageToken'] = pageToken
tmp = tmp + 1
return ret
答案 0 :(得分:2)
有关albumId和过滤器互斥的注释是正确的,因此您需要选择其中一个。但是,假设您想单独使用AlbumId,则需要删除您的Albumid代码周围的方括号,这是我代码中的一个剪辑:
searchbody = {
"albumId": album_id,
"pageSize": 10
}
print(searchbody)
mediaresults = gAPIservice.mediaItems().search(body=searchbody).execute()
mediaitems = mediaresults.get('mediaItems', [])
for item in mediaitems:
print(u'{0} ({1})'.format(item['filename'], item['id']))
答案 1 :(得分:0)