Teo*_*ora 30 python json http-post python-3.x
我试图以JSON发送POST请求.
*电子邮件变量的类型为"字节"
def request_to_SEND(email, index):
url = "....."
data = {
"body": email.decode('utf-8'),
"query_id": index,
"debug": 1,
"client_id": "1",
"campaign_id": 1,
"meta": {"content_type": "mime"}
}
headers = {'Content-type': 'application/json'}
try:
response = requests.post(url, data=json.dumps(data), headers=headers)
except requests.ConnectionError:
sys.exit()
return response
Run Code Online (Sandbox Code Playgroud)
我收到错误:
File "C:\Python34\lib\json\encoder.py", line 173, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: b'1' is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
你能告诉我,我做错了什么吗?
dan*_*ano 40
发生这种情况是因为你bytes在datadict中传递一个对象(b'1'特别是),可能是作为值的值index.您需要str先将其解码为对象才能json.dumps使用它:
data = {
"body": email.decode('utf-8'),
"query_id": index.decode('utf-8'), # decode it here
"debug": 1,
"client_id": "1",
"campaign_id": 1,
"meta": {"content_type": "mime"}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35163 次 |
| 最近记录: |