我仍然在处理Spotipy API和JSON --我对两者都很陌生,对于如何解析搜索结果感到有点困惑。
让我们试着寻找唯一命名的曲目
def get_tracks(tracktitle):
results = sp.search(q ="track:" + tracktitle, type = "track")
for idx, track in enumerate(results["tracks"]["items"]):
track_id = results["tracks"]["items"][idx]["uri"]
print(idx, track['name'], track_id)
myTrack = "Leeds road 3am"
get_tracks(myTrack)这会返回
利兹道0上午3时spotify:轨道:4 TaPFJ25RdoymYDPNtdwnv
利兹道1号上午3点spotify:轨道:4 XIPNAIu1cbtQ9gA6APZQ2
到现在为止还好。只有我想循环遍历生成的JSON对象,并获得曲目名称、专辑名称和艺术家名称。
这是结果的一部分
"name": "Eight",
"release_date": "2000",
"release_date_precision": "year",
"total_tracks": 11,
"type": "album",
"uri": "spotify:album:1vBvFaEZZezQZLLaEMGvTW"
},
"artists": [
{
"external_urls": {
"spotify": "https://open.spotify.com/artist/7n1EM42Fseebd9H2p8eWWS"
},
"href": "https://api.spotify.com/v1/artists/7n1EM42Fseebd9H2p8eWWS",
"id": "7n1EM42Fseebd9H2p8eWWS",
"name": "New Model Army",
"type": "artist",
"uri": "spotify:artist:7n1EM42Fseebd9H2p8eWWS"
}
],...我试过了
for idx, track in enumerate(results["tracks"]["items"]):
# artist = results["artists"]["item"][idx]["uri"]
# artist = results["artists"]["name"][idx]["uri"]
# artist = results["tracks"]["items"]["artists"][idx]["uri"]我想印的东西
我跟踪名字,艺术家名字,专辑名,id
利兹路3号新范军8 spotify:轨道:4 TaPFJ25RdoymYDPNtdwnv
利兹路3号新范军8 spotify:轨道:4 XIPNAIu1cbtQ9gA6APZQ2
发布于 2022-06-23 09:39:41
for循环中的print(idx, track['name'], track['artists'][0]['name'], track['album']['name'], track_id)应该可以工作。请注意,只有第一个艺术家的名字被打印出来(可以有多个艺术家在同一轨道上)
https://stackoverflow.com/questions/72727588
复制相似问题