DRF嵌套的序列化器将表转换为结构化的json

时间:2018-08-20 09:39:28

标签: python mysql json django-rest-framework

说,我有一个MySQL表,如:

| model_id | feature_name | feature_value | count | woe  | iv   |
| -------- | ------------ | ------------- | ----- | ---- | ---- |
| 1        | age          | age0          | 200   | 0.34 | 0.22 |
| 1        | age          | age1          | 300   | 0.22 | 0.34 |
| 1        | sex          | 0             | 250   | 0.38 | 0.03 |
| 1        | sex          | 1             | 250   | 0.48 | 0.21 |
| ...      |              |               |       |      |      |

并且我想像这样响应一个json结果(value_count是要素的值计数,total_iv是要素的值iv的总和):

{
    model_id: 1,
    feature:[
        {
            name: "age",
            value_count: 2,
            total_iv: 0.56,
            data: [
                {
                    value: 'age0',
                    count: 200,
                    woe: 0.34,
                    iv, 0.22
                },
                {
                    value: 'age1',
                    count: 300,
                    woe: 0.22,
                    iv, 0.34
                }
            ]
        },
        {
            name: "sex",
            value_count: 2,
            total_iv: 0.24,
            data: [
                {
                    value: '0',
                    count: 250,
                    woe: 0.38,
                    iv, 0.03
                },
                {
                    value: 'age1',
                    count: 250,
                    woe: 0.48,
                    iv, 0.21
                }
            ]
        },
        ...
    ]
}

我认为应该使用nested serializer

客户端将使用model_id检索此结果,但是有两个问题需要解决:

  1. 我应该重新设计我的SQL表以适合我的json结构吗?
  2. 如何从嵌套序列化程序获取值,因为我想计算总值?

欢迎提出任何建议!

0 个答案:

没有答案