Skip to main content
 首页 » 编程设计

python之Django 将字典值加载到 JSON 中

2024年10月25日34daizhj

我正在尝试从字典中获取值,并将它们加载到 JSON 中。我想我几乎可以用波纹管代码得到它,但它只输出第一组值,我如何遍历它以便它会输出所有组?

def storeliqour_view(request, store_id): 
    objectdicts = {} 
    objects = StoreLiquor.objects.filter(storeID=store_id) 
    for i in range(len(objects)): 
        objectdicts = model_to_dict(objects[i]) 
        objectdicts["storename"] = objects[i].storeID.StoreName 
    data = [objectdicts.values()]  
 
    #define response 
    response = { 
        'aaData': data, 
        'iTotalRecords': iTotalRecords, 
        'iTotalDisplayRecords': iTotalDisplayRecords, 
        'sEcho': request.GET['sEcho'] 
    } 
 
    #serialize to json 
    s = BytesIO() 
    json.dump(response, s, cls=MainEncoder) 
    s.seek(0) 
    return HttpResponse(s.read()) 

现在它输出这个。如您所见,它只有一组: {"aaData": [[1, 0.0, 18, 96.6, 7032, false, 2610, "test store"]]}

如何让它输出多个,像这样?: {"aaData": [[1, 0.0, 18, 96.6, 7032, false, 2610, "测试商店"], [2, 0.0, 18, 96.6, 7032, true, 2610, "测试商店"] ]}

请您参考如下方法:

你可以使用:

data = [ 
    model_to_dict(object).values() + [object.storeID.StoreName] 
    for object in objects 
] 

如果只有字典以相同的顺序返回值,这才会起作用。因此,执行以下操作更安全:

data = [] 
if objects: 
    keys = model_to_dict(objects[0]).keys() 
    for object in objects: 
        d = model_to_dict(object) 
        data.append([d[key] for key in keys] + [object.storeID.StoreName])