我有一个函数稍后在for
循环中调用。
def show_tracks(results):
for i, item in enumerate(tracks['items']):
track = item['track']
print(" %d %32.32s %s" % (i, track['artists'][0]['name'], track['name']))
第二段:
playlists = sp.user_playlists(username) #spotipy method
for playlist in playlists['items']:
if playlist['owner']['id'] == username:
print()
print(playlist['name'])
print(' total tracks', playlist['tracks']['total'])
results = sp.user_playlist(username, playlist['id'], fields="tracks,next")
tracks = results['tracks']
show_tracks(tracks)
while tracks['next']:
tracks = sp.next(tracks)
show_tracks(tracks)
但现在我想传递list
个用户名,如下所示:
playlists = sp.user_playlists(#list of usernames)
我曾尝试将第二个代码段定义为函数,但这样做会出现全局变量和局部变量的问题:
NameError: global name 'tracks' is not defined
那么,我如何传递usernames
的列表并循环其中每一个?
答案 0 :(得分:0)
检查show_tracks(results)
功能。你没有在任何地方传递结果。
此外,您正在迭代未在该函数中定义的轨道。只需将tracks
替换为results
即可。那你很高兴。