请求JSON格式不正确

And*_*ndi 0 python api rest json paypal

我正在尝试重新创建此页面上提供的示例

当然我正在用我的有效数据更改client_id,secret,credit card等...(我没有按原样复制粘贴示例).

你可以在这里看到我的完整代码(我用***隐藏了合理的数据).

我可以毫无问题地获得令牌,但是当我发布付款请求时,我得到了回复:

In [11]: r2.text
Out[11]: u'{"name":"MALFORMED_REQUEST","message":"The request JSON is not well formed.","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#MALFORMED_REQUEST","debug_id":"*************"}'
Run Code Online (Sandbox Code Playgroud)

我真的不明白为什么它说我的json格式不正确:(任何人都可以帮助我?谢谢!

Jan*_*ila 7

这是你的代码:

post_data = json.loads(s)

r2 = requests.post('https://api.sandbox.paypal.com/v1/payments/payment', headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token}, 
    data = post_data)
Run Code Online (Sandbox Code Playgroud)

您有一个JSON字符串s,您可以将其转换为Python对象并将其发布到服务器.正如文档所说,如果你传递a dict作为你的data,它会得到表单编码,而不是JSON编码.如果您想要任何其他格式的数据,您应该自己编码,如下例所示:

>>> r = requests.post(url, data=json.dumps(payload))
Run Code Online (Sandbox Code Playgroud)

由于您已经拥有JSON编码的字符串s,因此您可以发送它.