我正在尝试从我创建的测试播放列表中删除一个曲目。这是播放列表中的第三首曲目(即索引2),带有3PqvdKpjaxab0mWns1laKo的Spotify id。我的代码如下:
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)但是,当我运行代码时,跟踪不会被删除,并返回以下错误消息:{'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\"}]}"对我做错了什么有什么建议吗?
发布于 2017-09-08 12:35:59
我找到了解决方案:数据作为数据传递到端点,而不是作为参数传递给端点。换句话说,将最后一行更改为
response = requests.request(method, url=url, headers=headers, data=json.dumps(params))解决问题。
https://stackoverflow.com/questions/45905968
复制相似问题