使用Spotipy在Jupyter Lab配置Spotify API时遇client_id/secret KeyError
解决Spotipy配置Spotify API时的Key Error问题
问题根源
你代码里用os.environ读取SPOTIFY_CLIENT_ID和SPOTIFY_CLIENT_SECRET,但当前Jupyter Lab会话中并未加载这两个环境变量,因此触发Key Error。
临时解决(仅当前会话有效)
直接在代码里指定凭证(注意不要把这段代码公开分享):
from spotipy.oauth2 import SpotifyClientCredentials import spotipy # 替换成你自己的实际凭证 client_id = "你的Spotify Client ID" client_secret = "你的Spotify Client Secret" sp = spotipy.Spotify(auth_manager=SpotifyClientCredentials(client_id=client_id, client_secret=client_secret))
持久化解决(每次启动Jupyter都生效)
- 在电脑的用户根目录创建
.env文件,写入以下内容:
SPOTIFY_CLIENT_ID=你的Spotify Client ID SPOTIFY_CLIENT_SECRET=你的Spotify Client Secret
- 安装
python-dotenv库用于加载环境变量:
pip install python-dotenv
- 修改Jupyter代码,先加载环境变量再初始化Spotipy:
from spotipy.oauth2 import SpotifyClientCredentials import spotipy from dotenv import load_dotenv import os # 加载.env文件中的环境变量 load_dotenv() sp = spotipy.Spotify(auth_manager=SpotifyClientCredentials(client_id=os.environ["SPOTIFY_CLIENT_ID"], client_secret=os.environ["SPOTIFY_CLIENT_SECRET"]))
重要提醒
- 绝对不要把包含凭证的代码或
.env文件上传到GitHub等公共代码仓库,记得把.env加入.gitignore文件。 - 检查Spotify开发者后台的凭证是否处于激活状态,未被限制使用。
内容的提问来源于stack exchange,提问作者Haroon khan
相关产品推荐
相关产品推荐

