我正在使用 Spotipy Python 库与 Spotify Web API 进行交互。用户身份验证的两个流程之一是Authorization Code Flow。我尝试从终端输入我的用户名(包括下划线)运行示例中的代码。这是代码:
import sys
import spotipy
import spotipy.util as util
scope = 'user-library-read'
if len(sys.argv) > 1:
username = sys.argv[1]
else:
print "Usage: %s username" % (sys.argv[0],)
sys.exit()
token = util.prompt_for_user_token(username, scope)
if token:
sp = spotipy.Spotify(auth=token)
results = sp.current_user_saved_tracks()
for item in results['items']:
track = item['track']
print track['name'] + ' - ' + track['artists'][0]['name']
else:
print "Can't get token for", username
但它给了我以下回溯错误:
回溯(最后一次调用):文件“”,第 1 行,在文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/spotipy/util.py”,第 56 行,在 prompt_for_user_token token_info = sp_oauth.get_cached_token() 文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/spotipy/oauth2.py”,第 135 行,在 get_cached_token if 'scope ' 不在 token_info 中或不在 self._is_scope_subset(self.scope, token_info['scope']): File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/spotipy/oauth2 .py",第 157 行,在 _is_scope_subset haystack_scope = set(haystack_scope.split()) AttributeError: 'NoneType' object has no attribute 'split'
然后我用其他用户名不带下划线尝试了相同的代码,它起作用了。所以问题与用下划线分割字符串有关。有什么办法解决这个问题吗?