Spotify - 将列表作为参数传递

时间:2016-08-20 21:43:04

标签: python list parameters spotipy

我有一个函数稍后在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的列表并循环其中每一个?

1 个答案:

答案 0 :(得分:0)

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

此外,您正在迭代未在该函数中定义的轨道。只需将tracks替换为results即可。那你很高兴。