我对python还是有些陌生-仅仅几个月了-但是我试图用AttributeError包裹住我在使用Spotipy捕获某些音频功能时不断遇到的AttributeError。
当我运行此命令时:
bb_songs = ['24ySl2hOPGCDcxBxFIqWBu', '5v4GgrXPMghOnBBLmveLac', etc... # a list of Spotify song IDs
spotify = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials())
credentials = spotipy.oauth2.SpotifyClientCredentials()
print(spotify.audio_features(tracks=[bb_songs]))
我明白了:
(base) Matthews-MBP-2:spotipy MattJust$ python3 erase.py
Traceback (most recent call last):
File "erase.py", line 20, in <module>
print(spotify.audio_features(tracks=[bb_songs]))
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/spotipy/client.py", line 1243, in audio_features
tlist = [self._get_id("track", t) for t in tracks]
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/spotipy/client.py", line 1243, in <listcomp>
tlist = [self._get_id("track", t) for t in tracks]
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/spotipy/client.py", line 1462, in _get_id
fields = id.split(":")
AttributeError: 'list' object has no attribute 'split'
我是不是认为SpotiPy中的audio_features函数具有不喜欢我的列表的split函数,因为没有像“'track':'5v4GgrXPMghOnBBLmveLac'之类的字符串列表?]
任何帮助都将不胜感激!
马修
尝试print(spotify.audio_features(tracks=bb_songs))
删除方括号
而不是print(spotify.audio_features(tracks=[bb_songs]))
将列表括在一组方括号内会创建一个列表,其中包含一个元素,即您的列表。该函数尝试遍历列表元素,并对每个列表元素执行拆分功能。但是,由于要传递列表列表,因此该函数返回错误。