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

Python多字符串转列表及Spotipy逐次获取Spotify歌曲名问题

问题1:如何在Python中将多个字符串转换为一个列表?

以下是几种实用的实现方法:

  • 直接构造列表:将目标字符串放入方括号内,这是最常用的方式
    string_list = ["第一句", "第二句", "第三句"]
    
  • 从字符串元组转换:如果已有字符串组成的元组,可通过list()函数转为列表
    string_tuple = ("苹果", "香蕉", "橙子")
    string_list = list(string_tuple)
    
  • 拆分连接字符串:若所有字符串被统一分隔符(如逗号、空格)连接,用split()方法拆分生成列表
    joined_string = "猫,狗,鸟"
    string_list = joined_string.split(",")
    
问题2:使用spotipy获取Spotify播放列表歌曲名,实现逐个输出单首歌曲名

你的现有代码逻辑本身是循环逐个取出歌曲名,但可能存在两个问题:一是playlist_tracks默认仅返回第一页(最多100首)歌曲,二是输出速度过快导致看起来像一次性展示。优化方案如下:

完整代码(含分页处理与可选延迟)

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import time

# 初始化Spotify客户端(替换为你的客户端ID和密钥)
sp = spotipy.Spotify(auth_manager=SpotifyClientCredentials(
    client_id="你的客户端ID",
    client_secret="你的客户端密钥"
))

playlist_id = "你的播放列表ID或链接"
results = sp.playlist_tracks(playlist_id)
all_tracks = results["items"]

# 循环获取所有分页的歌曲数据
while results["next"]:
    results = sp.next(results)
    all_tracks.extend(results["items"])

# 逐个输出歌曲名,添加延迟让输出更清晰
for track in all_tracks:
    track_name = track["track"]["name"]
    print(track_name)
    time.sleep(1)  # 每次输出后暂停1秒,可根据需求调整或删除

关键说明

  • 分页处理:Spotify API返回结果分页,通过sp.next()循环获取所有页面的歌曲,确保不会遗漏播放列表中的歌曲
  • 延迟输出:加入time.sleep()可以让每首歌的名字间隔展示,更贴合"逐个输出"的需求;不需要延迟的话直接删除该行即可

内容的提问来源于stack exchange,提问作者Ayush Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:28:20