Python - Spotify API 返回错误 400 "Malformed JSON"
Python - Spotify API returning Error 400 "Malformed JSON"
嘿嘿。我正在尝试在业余时间制作一个使用 Spotify API 的小型应用程序。我已经设法让我的程序使用 oAuth 2 让用户授权我的应用程序来操纵他们的 Spotify,但是我 运行 遇到了 Spotify API 上某个端点的问题。
我遇到问题的端点是 https://api.spotify.com/v1/me/player/play (here's a link to their docs for the endpoint https://developer.spotify.com/console/put-play/)。每当我尝试向端点发出放置请求时,我都会收到一个带有消息 "Malformed json" 的 400 状态代码,即使我 copy/paste 他们自己的 json 来自文档,我也会收到此消息,所以我不要认为我格式化 json 的方式有问题,此外我之前使用 json 调用其他端点并且他们在这些调用中的格式没有问题。
这是我的代码:
headers = {"Authorization":"Bearer {}".format(access_token)}
url = 'https://api.spotify.com/v1/me/player/play'
payload = {"context_uri": "spotify:album:5ht7ItJgpBH7W6vJ5BqpPr"}
r = requests.put(url, headers=headers, data=payload)
print(r)
print(r.text)
澄清一下,access_token
是我从他们的授权过程中获得的访问令牌,我正在使用 python-requests 发出 http 请求(这是相关文档:https://requests.kennethreitz.org/en/master/)
我想知道问题是否是由于 Spotify 在其曲目 ID 中使用冒号而 JSON 中也使用了冒号?我在这里的另一个线程中看到我应该尝试将 "Content-Type":"application/json"
添加到我的 headers 但这根本没有改变结果。
非常感谢任何帮助,如果您需要更多信息,请告诉我。谢谢!
如果您的负载是 dict
,请在请求库中使用 json
kwargs。 data
适用于字符串负载。给你:
r = requests.put(url, headers=headers, json=payload)
嘿嘿。我正在尝试在业余时间制作一个使用 Spotify API 的小型应用程序。我已经设法让我的程序使用 oAuth 2 让用户授权我的应用程序来操纵他们的 Spotify,但是我 运行 遇到了 Spotify API 上某个端点的问题。
我遇到问题的端点是 https://api.spotify.com/v1/me/player/play (here's a link to their docs for the endpoint https://developer.spotify.com/console/put-play/)。每当我尝试向端点发出放置请求时,我都会收到一个带有消息 "Malformed json" 的 400 状态代码,即使我 copy/paste 他们自己的 json 来自文档,我也会收到此消息,所以我不要认为我格式化 json 的方式有问题,此外我之前使用 json 调用其他端点并且他们在这些调用中的格式没有问题。
这是我的代码:
headers = {"Authorization":"Bearer {}".format(access_token)}
url = 'https://api.spotify.com/v1/me/player/play'
payload = {"context_uri": "spotify:album:5ht7ItJgpBH7W6vJ5BqpPr"}
r = requests.put(url, headers=headers, data=payload)
print(r)
print(r.text)
澄清一下,access_token
是我从他们的授权过程中获得的访问令牌,我正在使用 python-requests 发出 http 请求(这是相关文档:https://requests.kennethreitz.org/en/master/)
我想知道问题是否是由于 Spotify 在其曲目 ID 中使用冒号而 JSON 中也使用了冒号?我在这里的另一个线程中看到我应该尝试将 "Content-Type":"application/json"
添加到我的 headers 但这根本没有改变结果。
非常感谢任何帮助,如果您需要更多信息,请告诉我。谢谢!
如果您的负载是 dict
,请在请求库中使用 json
kwargs。 data
适用于字符串负载。给你:
r = requests.put(url, headers=headers, json=payload)