如何更改响应结构

Ano*_*oop 0 python django-rest-framework

我面临一个改变以下结构的问题.....

这是我得到的结构

{
    "labels": [
        "List A",
        "List B",
        "List C",
        "List D"
    ],
    "data": [
        19,
        25,
        30,
        32
    ],
    "colors": [
        "#e15759",
        "#f28e2b",
        "#76b7b2",
        "#4e79a7"
    ],
}
Run Code Online (Sandbox Code Playgroud)

但是我想把下面的数据改成下面的方法

    {
        "category": "List D",
        "value": 32,
        "colors":         "#e15759"  
    },
    {
        "category": "List C",
        "value": 25
        "colors": "#f28e2b"
    },
    {
        "category": "List B",
        "value": 30,
        "colors": "#76b7b2"
    },
    {
        "category": "List A",
        "value": 19,
        "colors" : "#4e79a7"

    }
Run Code Online (Sandbox Code Playgroud)

这是我的代码

class AbcListAPI(APIView):
    def get(self, request, format=None):
        a = data_fuction()
        return Response(a)
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我从在我的代码的另一部分使用的函数 data_fuction 得到这个响应......所以我无法从那里编辑该响应......但在这个函数中我需要格式化这个代码....

Ant*_*nko 5

您需要将一种结构转换为另一种结构的功能

data = {
    "labels": [
        "List A",
        "List B",
        "List C",
        "List D"
    ],
    "data": [
        19,
        25,
        30,
        32
    ],
    "colors": [
        "#e15759",
        "#f28e2b",
        "#76b7b2",
        "#4e79a7"
    ],
}

def convert_data(data):
    result = []
    for l, d, c in zip(data['labels'], data['data'], data['colors']):
        result.append({
            'category': l,
            'value': d,
            'colors': c,
        })
    return result


print(convert_data(data))
Run Code Online (Sandbox Code Playgroud)