Как изменить структуру ответа - PullRequest
0 голосов
/ 22 апреля 2020

Я столкнулся с одной проблемой, чтобы изменить следующую структуру .....

Это структура, которую я получаю

{
    "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_fuction, которая используется в другой части моего кода .... Поэтому я не могу отредактировать этот ответ оттуда ..... Но в этой функции мне нужно отформатировать этот код ....

1 Ответ

5 голосов
/ 22 апреля 2020

Вам нужна функция, которая преобразует одну структуру в другую

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