如何在Spotipy中查找播放列表是否有播放列表图像封面



正如标题所说,我试图看看播放列表是否有播放列表图像封面,这样它就不会试图加载一个不存在的图像。

这是我的方法:

currentPlaylist = spotifyObject.user_playlist(username, playlistManageURI)

if ['images'][0] in currentPlaylist:
playlistCover_url = currentPlaylist['images'][0]['url']
image = QImage()
image.loadFromData(requests.get(playlistCover_url).content)
self.playlistCover.setScaledContents(True)
self.playlistCover.setPixmap(QPixmap(image))
else:
print('Playlist Cover doesnt exist!')

如果一个播放列表确实加载了图像封面,如果我试图加载一个不存在图像封面的播放列表,它会给我

IndexError: list index out of range

以下是当前播放列表的样子,其中播放列表确实有封面

{
"collaborative": false,
"description": "",
"external_urls": {
"spotify": "https://open.spotify.com/playlist/xxxxxxxx"
},
"followers": {
"href": null,
"total": 4
},
"href": "https://api.spotify.com/v1/playlists/xxxxxxxx?additional_types=track",
"id": "xxxxxx",
"images": [
{
"height": null,
"url": "https://i.scdn.co/image/ab67706c0000bebbcab54ad44bbf6dd124838df1",
"width": null
}
],
"name": "xxxxx",
"owner": {
"display_name": "xxxxx",
"external_urls": {
"spotify": "https://open.spotify.com/user/xxxxxxxx"
},
"href": "https://api.spotify.com/v1/users/xxxx",
"id": "xxxxx",
"type": "user",
"uri": "spotify:user:xxxx"

这就是没有封面的样子(完全空白的播放列表(

{
"collaborative": false,
"description": "xxxx",
"external_urls": {
"spotify": "https://open.spotify.com/playlist/xxxxxx"
},
"followers": {
"href": null,
"total": 0
},
"href": "https://api.spotify.com/v1/playlists/xxxxxx?additional_types=track",
"id": "xxxxxx",
"images": [],
"name": "xxxxxx",
"owner": {
"display_name": "xxxxx",
"external_urls": {
"spotify": "https://open.spotify.com/user/xxxxx"
},
"href": "https://api.spotify.com/v1/users/xxxx",
"id": "xxxxxxxx",
"type": "user",
"uri": "xxxxxxx"

如果"图像";始终存在于currentPlaylist中,而不管currentPlaylist["images"]是否为空。

if currentPlaylist['images']: 
...

否则

if "images" in currentPlaylist and  currentPlaylist["images"]:
...

使用以下用法解决:

if currentPlaylist.get('images') == []:
print('no image found in playlist!')
else:
print(['images'][0])
playlistCover_url = currentPlaylist['images'][0]['url']
image = QImage()
image.loadFromData(requests.get(playlistCover_url).content)
self.playlistCover.setScaledContents(True)
self.playlistCover.setPixmap(QPixmap(image))

相关内容

最新更新