联盟dict在python中

时间:2016-04-27 20:10:02

标签: python

我想连接多个dict以返回我的函数。

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"
            }
        ]
}

有什么想法吗?我已经尝试使用union,update,concatenation但没有成功..

谢谢!

1 个答案:

答案 0 :(得分:1)

这并不涉及dict。您只需要正确合并组成tab_parameters的列表。

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