当我尝试调用 .playlist_tracks() 或 .track() 并发送字符串时,出现此错误:
can only concatenate tuple (not "str") to tuple
playlist_id = query.split("/")[-1].split("?")[0]
print(playlist_id)
try:
playlist = spotify.playlist_tracks(playlist_id)
except Exception as e:
print(f'Error while getting playlist data: {str(e)}')
logging.error(f'Error while getting playlist data: {str(e)}')
查询是从 Discord 返回的 URL。我试图强制它为 str 和所有内容。
他们是否更改了这些函数的输入方式?
我尝试过使用 URL、URL 或 ID,但都返回相同的错误。
是对的,
spotify.playlist_tracks()
方法需要一个元组作为参数,而不是字符串。
遇到的错误是因为将字符串
playlist_id
直接传递给了
spotify.playlist_tracks(playlist_id)
。
为了解决这个问题,需要将
playlist_id
包装在一个元组中,如下所示:
playlist = spotify.playlist_tracks((playlist_id,))
注意:我们在
playlist_id
周围添加了一个额外的括号和一个逗号,将其转换为包含单个元素的元组。
完整的代码示例:
playlist_id = query.split("/")[-1].split("?")[0]
print(playlist_id)
try:
playlist = spotify.playlist_tracks((playlist_id,)) # 修改后的代码
except Exception as e:
print(f'Error while getting playlist data: {str(e)}')
logging.error(f'Error while getting playlist data: {str(e)}')
这个修改应该可以解决 "can only concatenate tuple (not "str") to tuple" 错误,并且可以成功地使用
spotify.playlist_tracks()
方法获取播放列表的曲目信息.