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

Python调用Spotify API获取Token时遭遇UTF-8解码错误求助

Python调用Spotify API获取Token时遭遇UTF-8解码错误求助

嘿,我一眼就瞅出问题所在啦!你在处理Base64认证字符串的时候搞反了编码和解码操作,这才导致了这个UTF-8解码错误。

错误原因分析

你当前代码里写的是:

auth_base64 = str(base64.b64decode(auth_bytes), "utf-8")

但Spotify的Basic认证要求我们把client_id:client_secret这个字符串编码成Base64格式,而不是去解码它。你用b64decode()处理原本是UTF-8字节的auth_string,相当于做了反向操作,得到的内容自然不是合法的UTF-8字符串,所以触发了UnicodeDecodeError。

修正后的代码

把Base64处理的部分改成b64encode()就没问题了,完整的get_token()函数如下:

def get_token():
    auth_string = client_id + ":" + client_secret
    auth_bytes = auth_string.encode("utf-8")
    # 这里把b64decode替换成b64encode
    auth_base64 = str(base64.b64encode(auth_bytes), "utf-8")
    
    url = "https://accounts.spotify.com/api/token"
    headers = {
        "Authorization": "Basic " + auth_base64,
        "Content-type": "application/x-www-form-urlencoded"
    }
    data = {"grant_type": "client_credentials"}
    
    result = post(url, headers=headers, data=data)
    json_result = json.loads(result.content)
    token = json_result["access_token"]
    return token

补充说明

  • b64encode()会把传入的字节数据转换成Base64编码的字节串,再转成UTF-8字符串就是Spotify需要的认证头内容了。
  • 修正后运行代码,应该就能成功获取到access_token,不会再触发解码错误啦。

备注:内容来源于stack exchange,提问作者Revers_official

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 08:38:11