Django将单独的变量序列化为json

时间:2015-02-05 08:59:10

标签: python objective-c json django

我有最小的最大变量是模型上的查询结果

args.aggregate(Min('price'))
args.aggregate(Max('price'))

像这样返回序列化数据

return HttpResponse(json.dumps([{"maxPrice":args.aggregate(Max('price')),
                "minPrice":args.aggregate(Min('price'))}]), content_type ='application/json')

结果如下:

minPrice =     {
    "price__min" = 110;
};
maxPrice =     {
    "price__max" = 36000;
};

并提取数据如下所示

...
success:^(AFHTTPRequestOperation *operation, id responseObject){
          NSDictionary *elements = responseObject;
          int minPrice = elements[0][@"minPrice"][@"price__min"];
      }

问题:如何更改django / python代码,以使objective-c代码看起来像这样:int minPrice = elements[@"minPrice"];

3 个答案:

答案 0 :(得分:1)

data = args.aggregate(minPrice=Min('price'), maxPrice=Max('price'))
return HttpResponse(json.dumps(data), content_type='application/json')

数据变量是一个带有" minPrice"的字典。和" maxPrice"密钥。

答案 1 :(得分:0)

将JSON转储到字典而不是列表:

values = args.aggregate(Min('price'), Max('price'))

return HttpResponse(json.dumps({'maxPrice': values['price__max'], 
                                'minPrice': values['price__min']}),
                    content_type ='application/json')

答案 2 :(得分:0)

你可以做这样的事情来重新安排json转储:

data = {'maxPrice': args.aggregate(Max('price'))['price__max'],
        'minPrice': args.aggregate(Min('price'))['price__min']}
return HttpResponse(json.dumps(data), content_type ='application/json')

那应该给你一个json dict的那种形式'{"maxPrice": xxx, "minPrice": yyy}'