2016-04-27 2 views
2

Я хотел бы объединить несколько dict для возврата моей функции.Union dict in python

def get_params(request, active_id): 

    tab_parameters = [ 
     shadow(active_id), 
     light_parameter(active_id) 
    ] 

    parameters = { 
     'id': active_id, 
     'parameters': tab_parameters 
    } 

    return response.HttpResponse(json.dumps(parameters), 'application/json') 


def light_parameter(active_id): 
    active_lights = LightParameter.objects.filter(id=active_id).all() 

    list_parameters = [] 
    for active_light in active_lights: 
     list_parameters.append({ 
       'name': 'light', 
       'color': active_light.color, 
     }) 

    return list_parameters 

Ожидаемый результат:

{ 
    "id": 1, 
    "parameters": [ 
     { 
      "name": "shadow" 
     }, 
     { 
      "color": 1, 
      "name": "light" 
     }, 
     { 
      "color": 2, 
      "name": "light" 
     } 
} 

Мой фактический результат (с []):

{ 
    "id": 1, 
    "parameters": [ 
     { 
      "name": "shadow" 
     }, 
     [ 
      { 
       "color": 1, 
       "name": "light" 
      }, 
      { 
       "color": 2, 
       "name": "light" 
      } 
     ] 
} 

Любая идея? Я уже пытался использовать объединение, обновление, конкатенацию, но безуспешно ..

Спасибо!

ответ

1

Это действительно не связано с dict. Вам просто нужно правильно объединить списки, составляющие tab_parameters.

tab_parameters = [shadow(active_id)] + light_parameter(active_id) 
+0

Отлично! Большое спасибо :) – Chaoxys