如何确定播放列表中是否有Spotipy中的播放列表图像封面?

2024-09-29 19:32:26 发布

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

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

以下是我的方法:

 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

下面是currentPlaylist与带有封面的播放列表的外观

{
    "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"

Tags: httpsimagecomurl播放列表externalspotifyhref
2条回答

使用此用法解决:

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))

如果“图像”始终存在于currentPlaylist中,无论currentPlaylist['images']是否为空

if currentPlaylist['images']: 
     ...

否则

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

相关问题 更多 >

    热门问题