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
相关产品推荐
相关产品推荐

