Django REST JSON API结果按键列出

2024-05-23 13:40:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Django Rest框架制作了一个非常基本的API,其输出如下:

[
    {
        "name": "John",
        "city": "chicago",
        "age": "22"
    },
    {
        "name": "Gary",
        "city": "florida",
        "age": "35"
    },
    {
        "name": "Selena",
        "city": "vegas",
        "age": "18"
    }
]

我想将其转换为以下格式,以简化其数据在图表中的使用

{
    "name": ["John", "Gary", "Selena"]
    "city": ["chicago", "vegas", "florida"]
    "age": ["22", "35", "18"]
}
  1. 有没有一种简单的方法可以在Javascript(和Python)中实现这一点

2。可以通过调整DRF中的序列化程序或视图集来主动解决此问题吗?


Tags: 数据djangoname框架restapicityage
3条回答

检查这个

data = [
    {
        "name": "John",
        "city": "chicago",
        "age": "22"
    },
    {
        "name": "Gary",
        "city": "florida",
        "age": "35"
    },
    {
        "name": "Selena",
        "city": "vegas",
        "age": "18"
    }
]
output = []
name = []
city = []
age = []

for i in data:
    name.append(i['name'])
    city.append(i['city'])
    age.append(i['age'])
output.append({"name":name,"city":city,"age":age})
print(output)

在Python中,您可以这样做:

data = [
    {
        "name": "John",
        "city": "chicago",
        "age": "22"
    },
    {
        "name": "Gary",
        "city": "florida",
        "age": "35"
    },
    {
        "name": "Selena",
        "city": "vegas",
        "age": "18"
    }
]

result = {}

for key in data[0]:
    result[key] = []

for entry in data:
    for key in entry:
        result[key].append(entry[key])

print(result)

Javascript版本:

&13; 第13部分,;
const data = [
    {
        name: 'John',
        city: 'chicago',
        age: '22',
    },
    {
        name: 'Gary',
        city: 'florida',
        age: '35',
    },
    {
        name: 'Selena',
        city: 'vegas',
        age: '18',
    },
];

const result = Object.keys(data[0]).reduce((obj, key) => {
    obj[key] = data.map(_ => _[key]);
    return obj;
}, {});

console.log(result);
和#13;
和#13;

相关问题 更多 >