如何解决Spotipy-仅列出播放列表中的曲目和歌手姓名
大家好,谢谢您的帮助:)
有人可以帮助我理解如何使用以下代码,该代码显示指定播放列表的数据,并仅显示艺术家和曲目名称吗?我一直在忙于阅读API文档几个小时,但至今还无法弄清它的故事。现在,当它显示数据时,它给了我一堆混乱的一堆数据。另外,请注意,我在此代码的client_id和Secret部分中放置了伪值。
from spotipy.oauth2 import SpotifyClientCredentials
import spotipy
import json
PlaylistExample = '37i9dQZEVXbMDoHDwVN2tF'
cid = '123'
secret = 'xyz'
auth_manager = SpotifyClientCredentials(client_id=cid,client_secret=secret)
sp = spotipy.Spotify(auth_manager=auth_manager)
playlist_id = 'spotify:user:spotifycharts:playlist:37i9dQZEVXbJiZcmkrIHGU'
results = sp.playlist(playlist_id)
print(json.dumps(results,indent=4))
解决方法
这样的东西有用吗?
print("Song - Artist - Album\n")
for item in results['tracks']['items']:
print(
item['track']['name'] + ' - ' +
item['track']['artists'][0]['name'] + ' - ' +
item['track']['album']['name']
)
您的输出将类似于以下内容:
Song - Artist - Album
ONLY - ZHU - ONLY
Bad - 2012 Remaster - Michael Jackson - Bad 25th Anniversary
Orion - Rodrigo y Gabriela - Rodrigo y Gabriela
Shape of You - Ed Sheeran - ÷ (Deluxe)
或者,您可以根据Spotify返回的结构创建自己的结构,但只需保留所需的内容即可。
result_dict = {
'tracks': {
'items': [],'limit': 100,'next': None,'offset': 0,'previous': None,'total': 16
},'type': 'playlist','uri': '<playlist_uri>'
}
从上方进入'items'
的轨道结构:
track_dict = {
'track': {
'album': {
'name': item['track']['album']['name'],},'artists': [{
'name': item['track']['artists'][0]['name'],}],'name': item['track']['name'],}
}
然后依次迭代并插入:
for item in results['tracks']['items']:
track_dict = {
'track': {
'album': {
'name': item['track']['album']['name'],'artists': [{
'name': item['track']['artists'][0]['name'],}
}
# Append the track dict structure to your results dict structure
result_dict['tracks']['items'].append(track_dict)
在打印result_dict
时将其作为结果:
{
'tracks': {
'items': [{
'track': {
'album': {
'name': 'ONLY'
},'artists': [{
'name': 'ZHU'
}],'name': 'ONLY'
}
},{
'track': {
'album': {
'name': 'Bad 25th Anniversary'
},'artists': [{
'name': 'Michael Jackson'
}],'name': 'Bad - 2012 Remaster'
}
},{
'track': {
'album': {
'name': 'Rodrigo y Gabriela'
},'artists': [{
'name': 'Rodrigo y Gabriela'
}],'name': 'Orion'
}
},{
'track': {
'album': {
'name': '÷ (Deluxe)'
},'artists': [{
'name': 'Ed Sheeran'
}],'name': 'Shape of You'
}
}],'total': 4
},'uri': '<playlist_uri>'
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。