我对Python中的请求库有疑问。
我尝试将其发送到我的nodeJS服务器:
payload={
"sid": _set["_id"],
"pid": _project["_id"],
"inputs": [_file["_id"]]
}
print(payload)
response = requests.post(URLPORT+"/job/",headers={'Authorization': token},data=payload)
_job=response.json()
print(_job)
但收到的是这个( console.log(req.body)):
{ sid: '5a8862e8514580739235c0ab',
pid: '5a9be32fdacc495d6a2ea8bf',
inputs: '5a9be342dacc495d6a2ea8c0' }
如果我发送*"inputs": [_file["_id"],-1]*
,我会*inputs: [ '5a9be342dacc495d6a2ea8c0', '-1' ] }*
如果我只发送一个元素,这两个人**[** and **]**
在哪里?
由于
答案 0 :(得分:1)
如果要使用请求发送JSON正文,请使用json
参数而不是data
。这有效:
requests.post("https://httpbin.org/post", json={"inputs": [1, 2, 3]})
背景:
data
使用请求内容类型application/x-www-form-urlencoded
,对于包含单个项目的列表,它与标量项目相同。
json
使用请求内容类型application/json
,它将字典/列表结构序列化为JSON对象。