400:尝试从 Spotify 播放列表中删除曲目时出现 Missing Tracks 错误
400: Missing Tracks error when attempting to remove track from Spotify playlist
我正在尝试从我创建的测试播放列表中删除曲目。这是播放列表中的第三首曲目(即索引 2),Spotify id 为 3PqvdKpjaxab0mWns1laKo
。我的代码如下:
method = "delete"
url = "https://api.spotify.com/v1/users/"+username+"/playlists/6bhZt1Uia5pfmeL5OYDJZM/tracks"
headers = {
'Authorization': 'Bearer ' + TOKEN,
'Content-Type': 'application/json',
'Accept': 'application/json'
}
params = {
"tracks": [
{
"positions": [2],
"uri": "spotify:track:3PqvdKpjaxab0mWns1laKo"
}
]
}
response = requests.request(method, url=url, headers=headers, params=params)
但是我运行代码的时候,track并没有被删除,并且返回如下错误信息:{'error': {'message': 'Missing tracks', 'status': 400}}
另一方面,如果我在 web api 中尝试完全相同的请求或使用 curl(如下所示),它会成功运行。
curl -X DELETE "https://api.spotify.com/v1/users/USERNAME/playlists/6bhZt1Uia5pfmeL5OYDJZM/tracks" -H "Accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" --data "{\"tracks\":[{\"positions\":[2],\"uri\":\"spotify:track:3PqvdKpjaxab0mWns1laKo\"}]}"
对我做错了什么有什么建议吗?
我找到了解决方案:数据作为数据而不是参数传递到端点。换句话说,将最后一行更改为
response = requests.request(method, url=url, headers=headers, data=json.dumps(params))
修复了问题。
我正在尝试从我创建的测试播放列表中删除曲目。这是播放列表中的第三首曲目(即索引 2),Spotify id 为 3PqvdKpjaxab0mWns1laKo
。我的代码如下:
method = "delete"
url = "https://api.spotify.com/v1/users/"+username+"/playlists/6bhZt1Uia5pfmeL5OYDJZM/tracks"
headers = {
'Authorization': 'Bearer ' + TOKEN,
'Content-Type': 'application/json',
'Accept': 'application/json'
}
params = {
"tracks": [
{
"positions": [2],
"uri": "spotify:track:3PqvdKpjaxab0mWns1laKo"
}
]
}
response = requests.request(method, url=url, headers=headers, params=params)
但是我运行代码的时候,track并没有被删除,并且返回如下错误信息:{'error': {'message': 'Missing tracks', 'status': 400}}
另一方面,如果我在 web api 中尝试完全相同的请求或使用 curl(如下所示),它会成功运行。
curl -X DELETE "https://api.spotify.com/v1/users/USERNAME/playlists/6bhZt1Uia5pfmeL5OYDJZM/tracks" -H "Accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" --data "{\"tracks\":[{\"positions\":[2],\"uri\":\"spotify:track:3PqvdKpjaxab0mWns1laKo\"}]}"
对我做错了什么有什么建议吗?
我找到了解决方案:数据作为数据而不是参数传递到端点。换句话说,将最后一行更改为
response = requests.request(method, url=url, headers=headers, data=json.dumps(params))
修复了问题。