无法处理Django的多个请求

时间:2015-10-14 12:20:00

标签: django django-rest-framework

我正在尝试在一个请求中发送多个json对象,但我无法从中提取值。

def config(request):
print "type",type(request)
print "request in config",request.body
  if request.method == 'POST':
    print "In Handler"
    print "Request Body is ",request.body
    data =  simplejson.loads(request.body)
    for i in data:
        print "REQUEST is ____",i
        z = json.dumps(i)
        rew = retResp(z)
    proID = request.data["proId"]

对于请求1,可以找到proID,但对于请求2,我无法获得proID。

req1 = curl -X POST http://192.168.2.242:8080/server/config/ -d '{"confMsgReqId": 2,"proId":"123"}' -H "Content-Type: application/json"
req2 = curl -X POST http://192.168.2.242:8080/server/config/ -d '[{"confMsgReqId": 2,"proId":"123"},{"confMsgReqId": 2,"proId":"345"}]' -H "Content-Type: application/json"

1 个答案:

答案 0 :(得分:0)

第一个请求中的数据是字典,因此您可以访问data['proID']

第二个请求中的数据是两个词典的列表,因此您可以访问data[0]['proID']data[1]['proID']

如果您为第一个请求以及第二个请求使用数组,您会发现它更容易。可以创建一个可以处理列表中单个元素的api,但它会使代码更复杂。

req1 = curl -X POST http://192.168.2.242:8080/server/config/ -d '[{"confMsgReqId": 2,"proId":"123"}]' -H "Content-Type: application/json" 

查看代码,您可能希望访问循环内的id。不清楚为什么要手动解码json,而不是使用request.data

for d in request.data:
      d["proId"]