Python Django—如何在将JSON对象作为有效负载传递给request.post()时将其字符串化

Python Django—如何在将JSON对象作为有效负载传递给request.post()时将其字符串化,python,json,django,Python,Json,Django,我的Django视图中有以下代码: headers = {'Authorization': "key=AAAA7oE3Mj...", 'Content-type': 'application/json'} token = "dJahuaU2p68:A..." payload = {"data": {}, "to": user_web_tokens} url = "https://..." r = requests.post(url, data=payload, h

我的Django视图中有以下代码:

headers = {'Authorization': "key=AAAA7oE3Mj...",
               'Content-type': 'application/json'}
token  = "dJahuaU2p68:A..."
payload = {"data": {}, "to": user_web_tokens}
url = "https://..."
r = requests.post(url, data=payload, headers=headers)
问题是响应终止时出现400错误,错误消息为:

JSON_分析_错误:位置0处出现意外字符(t)

如果我传递的是字符串而不是JSON:

payload={“data”:{},“to”:user\u web\u tokens}

…我得到一个稍微不同的错误:

JSON_解析_错误:位置19处出现意外字符(u)


我遇到过一篇文章,他们说json对象在作为有效负载传递之前应该进行字符串化。但我不知道如何在Django解决这个问题。它与序列化有关吗?请帮帮我

当您使用嵌套字典数据
post
时,
json.dumps
将有所帮助,或者您可以通过
json
参数直接传递它

import json
# ...
r = requests.post(url, data=json.dumps(payload), headers=headers)
# or
r = requests.post(url, json=payload, headers=headers)

请参阅。

您是否尝试过此功能?导入json;payload=json.dumps(payload)请求有一个专门的json负载参数:
r=Requests.post(url,json=payload,headers=headers)