日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

pythonspot_python-Spotipy-列表索引超出范围

發(fā)布時(shí)間:2024/7/23 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pythonspot_python-Spotipy-列表索引超出范围 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編寫Spotipy腳本以從給定專輯返回專輯曲目,我偶爾會(huì)遇到錯(cuò)誤:

album_id = results["albums"]["items"][0]["uri"]

IndexError: list index out of range

這種錯(cuò)誤往往發(fā)生在更多的流行歌手遍歷所有專輯的時(shí)候.我猜結(jié)果列表已達(dá)到極限或以某種方式亂序.無(wú)論哪種方式,我都不確定如何解決它,因?yàn)槲液艽_定我從Spotipy網(wǎng)站上獲得了album_id.有任何想法嗎?

#!/usr/bin/python

# -*- coding: utf-8 -*-

import spotipy

sp = spotipy.Spotify()

sp.trace = False

def get_artist_albums(artist):

results = sp.search(q = "artist:" + artist, type = "artist")

items = results["artists"]["items"]

artist = items[0]

# print artist

albums = []

albumsTitles = []

results = sp.artist_albums(artist["id"], album_type = "album")

albums.extend(results["items"])

while results["next"]:

results = sp.next(results)

albums.extend(results["items"])

seen = set() # to avoid dups

albums.sort(key = lambda album:album["name"].lower())

for album in albums:

albumTitle = album["name"]

if albumTitle not in seen:

print((" " + albumTitle))

seen.add(albumTitle)

albumsTitles.append(albumTitle)

# return albumsTitles

return albumsTitles

def get_albums_tracks(album):

albumtracks = []

results = sp.search(q = "album:" + album, type = "album")

# get the first album uri

album_id = results["albums"]["items"][0]["uri"]

# get album tracks

tracks = sp.album_tracks(album_id)

c = 1

# print album

for track in tracks["items"]:

# print "#%s %s" %(c, track["name"])

albumtracks.append(track["name"])

c +=1

return albumtracks

# 3 album band - ok

phosgoreAlbums = get_artist_albums("Phosgore")

for item in phosgoreAlbums:

print get_albums_tracks(item)

print ""

# 6 album band - ok

# (well technically 2, but's let not get into that night now)

joyDivisionAlbums = get_artist_albums("Joy Division")

for item in joyDivisionAlbums:

print get_albums_tracks(item)

print ""

# 34 albums - falls over

cherAlbums = get_artist_albums("Cher")

for item in cherAlbums:

print get_albums_tracks(item)

print ""

# 38 album band - falls over

theCureAlbums = get_artist_albums("The Cure")

for item in theCureAlbums:

print get_albums_tracks(item)

print ""

# 43 album band - falls over

aliceCooperAlbums = get_artist_albums("Alice Cooper")

for item in aliceCooperAlbums:

print get_albums_tracks(item)

print ""

解決方法:

results [“相冊(cè)”] [“商品”]只是一個(gè)空列表,因此索引0處沒有元素.您可以在嘗試對(duì)其進(jìn)行索引之前對(duì)其進(jìn)行測(cè)試:

if not results["albums"]["items"]:

# no albums found, so no tracks either

return []

album_id = results["albums"]["items"][0]["uri"]

標(biāo)簽:list,python-2-7,spotipy,python

總結(jié)

以上是生活随笔為你收集整理的pythonspot_python-Spotipy-列表索引超出范围的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。