You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解析Spotipy搜索返回JSON提取曲目、专辑、艺术家信息

解决方案

Spotify的sp.search()返回的track类型结果是固定三层嵌套结构,字段访问路径不对就会拿不到值,直接用下面的代码即可实现要求的输出格式:

# 注意提前替换成你自己的Spotify API密钥完成sp客户端初始化
search_res = sp.search(q="你要搜索的曲目关键词", type="track", limit=10)
track_list = search_res["tracks"]["items"]

for seq, track in enumerate(track_list, start=1):
    # 字段提取
    track_name = track["name"]
    track_id = track["id"]
    album_name = track["album"]["name"]
    # 单曲目可能关联多个艺人,用逗号拼接所有艺人名
    artist_name = ", ".join([i["name"] for i in track["artists"]])
    # 固定格式输出
    print(f"{seq} {track_name} {artist_name} {album_name} {track_id}")
常见踩坑点
  • 艺人字段键名是复数artists,且值为数组格式,不是单值字段,直接写track["artist"]会触发KeyError,直接取track["artists"]拿到的是艺人对象列表不是名称字符串
  • 专辑信息嵌套在track下的album对象中,直接取track["album"]拿到的是整个专辑的JSON对象,需要进一步取["name"]才能拿到专辑名字符串
  • 所有曲目列表存放在返回结果的tracks -> items路径下,直接遍历返回结果最外层的items键会拿到空值
对应JSON结构参考(简化)
{
  "tracks": {
    "items": [
      {
        "name": "曲目名",
        "id": "track唯一ID",
        "album": {
          "name": "所属专辑名"
        },
        "artists": [
          {"name": "艺人名1"},
          {"name": "艺人名2"}
        ]
      }
    ]
  }
}

内容的提问来源于stack exchange,提问作者Ghoul Fool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 23:30:51