如何通过 Spotipy 获取所有项目,包括下一页
How to get all items through Spotipy including next page
使用 Spotipy python library 我正在尝试打印出我从 Spotify 保存的所有歌曲。
使用以下代码,我能够打印出返回的第一页的所有结果:
results = sp.current_user_saved_tracks()
for item in results['items']:
results = sp.next(results['items'])
track = item['track']
label = track['artists'][0]['name'] + ' - ' + track['name']
print (label)
使用其他一些关于如何遍历具有多个页面的播放列表的示例,我放置了一个 while 语句以转到下一页(如果存在的话)
results = sp.current_user_saved_tracks()
for item in results['items']:
while results['next']:
results = sp.next(results['items'])
track = item['track']
label = track['artists'][0]['name'] + ' - ' + track['name']
print (label)
但这不起作用,我收到以下错误:
TypeError: list indices must be integers or slices, not str
这是从 Spotify API
获取用户曲目结构的样子
{
"href": "https://api.spotify.com/v1/me/tracks?offset=0&limit=50",
"items": []
"limit": 50,
"next": "https://api.spotify.com/v1/me/tracks?offset=50&limit=50",
"offset": 0,
"previous": null,
"total": 414
}
items 数组中有我提交的曲目,因为曲目太多了。
谁能解释一下如何正确进入下一页并继续 for 循环?
我认为你应该试试:
for item in results['tracks']['items']:
while results['tracks']['next']:
results = sp.next(results['tracks']['items'])
track = item['track']
label = track['artists'][0]['name'] + ' - ' + track['name']
print (label)
想通了:
results = sp.current_user_saved_tracks()
tracks = results['items']
while results['next']:
results = sp.next(results)
tracks.extend(results['items'])
for track in tracks:
print(track['track']['name'])
使用 Spotipy python library 我正在尝试打印出我从 Spotify 保存的所有歌曲。
使用以下代码,我能够打印出返回的第一页的所有结果:
results = sp.current_user_saved_tracks()
for item in results['items']:
results = sp.next(results['items'])
track = item['track']
label = track['artists'][0]['name'] + ' - ' + track['name']
print (label)
使用其他一些关于如何遍历具有多个页面的播放列表的示例,我放置了一个 while 语句以转到下一页(如果存在的话)
results = sp.current_user_saved_tracks()
for item in results['items']:
while results['next']:
results = sp.next(results['items'])
track = item['track']
label = track['artists'][0]['name'] + ' - ' + track['name']
print (label)
但这不起作用,我收到以下错误:
TypeError: list indices must be integers or slices, not str
这是从 Spotify API
获取用户曲目结构的样子{
"href": "https://api.spotify.com/v1/me/tracks?offset=0&limit=50",
"items": []
"limit": 50,
"next": "https://api.spotify.com/v1/me/tracks?offset=50&limit=50",
"offset": 0,
"previous": null,
"total": 414
}
items 数组中有我提交的曲目,因为曲目太多了。
谁能解释一下如何正确进入下一页并继续 for 循环?
我认为你应该试试:
for item in results['tracks']['items']:
while results['tracks']['next']:
results = sp.next(results['tracks']['items'])
track = item['track']
label = track['artists'][0]['name'] + ' - ' + track['name']
print (label)
想通了:
results = sp.current_user_saved_tracks()
tracks = results['items']
while results['next']:
results = sp.next(results)
tracks.extend(results['items'])
for track in tracks:
print(track['track']['name'])