将Python列表发布到Node.js服务器,期望由包含JSON的数组组成的有效负载

时间:2014-06-23 17:17:17

标签: python json post python-requests

我正在尝试将POST请求(在Python中)发送到期望包含JSON的数组的服务器。我似乎无法正确格式化数据。如何将以下有效负载格式化为Node.js服务器的JavaScript数组?

发布 / api / adduser /

Node.js预计有效负载:

[ 
    {'user':'jon','email':'email@gmail.com'}, 
    {'user':'jon2','email':'email2@gmail.com'} 
]

我目前的代码:

import requests
import json

payload = \
[
   {
       'user': 'hello',
       'email': 'hello@gmail.com'
   },
   {
       'user': 'helloAgain',
       'email': 'helloAgain@gmail.com'
   }
]

res = requests.post('http://localhost/api/users', data=json.dumps(payload))

#res -> 400 error -> reason:  "wrong json format - must be an array"

2 个答案:

答案 0 :(得分:1)

您预期的有效负载不正确(它不是JSON)。节省大量的麻烦并使用json模块:

import json
res = requests.post('http://localhost/api/users', data=json.dumps(payload))

答案 1 :(得分:0)

以下是解决方案:

发布 / api / adduser /

Node.js预计有效负载:

[ 
    {'user':'jon','email':'email@gmail.com'}, 
    {'user':'jon2','email':'email2@gmail.com'} 
]

我目前的代码:

import requests
import json

payload = \
[
   {
       'user': 'hello',
       'email': 'hello@gmail.com'
   },
   {
       'user': 'helloAgain',
       'email': 'helloAgain@gmail.com'
   }
]

jsonPayload = json.dumps(payload)

headers = {'Content-Type': 'application/json'}

res = requests.post('http://localhost/api/users', data=jsonPayload, headers=headers)