0

我有一个稍后在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和循环呢?

4

1 回答 1

0

检查你的show_tracks(results)功能。你没有在任何地方传递结果。

此外,您正在迭代该函数中未定义的轨道。只需替换tracksresults. 那你就可以走了。

于 2016-08-20T23:06:30.860 回答