因此,我正在遍历一个巨大的.csv文件,该文件的每一行都包含一首歌曲名称和一个艺术家名称。对于这些行中的每一行,我都必须将该歌曲的音轨ID写入另一个文件。
我一直在运行程序,但一个小时后出现此错误:
“访问令牌已过期”
我正在阅读,似乎令牌在一小时后过期。在执行期间,有什么办法可以重新加载令牌?
这是我编写的用于获取歌曲ID的功能
def getSongId(artist, title, songMap):
index = artist + title
trackId = 'null'
try:
trackId = songMap[index]
print("HashMap used")
except KeyError:
try:
resultats = spotify.search(q='artist:' + artist + ' track:' + title, type='track')
trackId = resultats['tracks']['items'][0]['id']
songMap[index] = trackId
except IndexError:
trackId = 'null'
return trackId, songMap
这是我得到的错误:
spotipy.client.SpotifyException:HTTP状态:401,代码:-1-https://api.spotify.com/v1/search?q=artist%3AZadye+Wolf+track%3AHustler&limit=10&offset=0&type=track: 访问令牌已过期
非常感谢您
答案 0 :(得分:0)
简单的解决方案是在令牌过期时捕获异常,并在继续操作之前刷新令牌。
try:
result = spotify.search(...)
except spotify.client.SpotifyException as e:
token = refresh_token(...)
else:
# normal flow