首页 > 解决方案 > 如何更改响应结构

问题描述

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

这是我得到的结构

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

但我想将以下数据更改为以下方法

    {
        "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"

    }

这是我的代码

class AbcListAPI(APIView):
    def get(self, request, format=None):
        a = data_fuction()
        return Response(a)

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

标签: pythondjango-rest-framework

解决方案


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

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))

推荐阅读