繁体   English   中英

Pandas json 规范化对象数组

[英]Pandas json normalize array of objects

我正在尝试用 Pandas 格式化一个 json。 但我遇到了困难。

我尝试使用Pandas json 规范化包含对象数组的对象属性作为示例,但我不能。

杰森:

{
    "meta": {
        "res_type": "scalar",
        "responses": []
    },
    "data": [
        {
            "type": "scalar_response",
            "attributes": {
                "columns": [
                    {
                        "type": "group",
                        "name": "service",
                        "values": [
                            [
                                "service_aaaaaa"
                            ],
                            [
                                "service_bbbbbb"
                            ]
                        ]
                    },
                    {
                        "type": "number",
                        "meta": {
                            "unit": null
                        },
                        "values": [
                            0.04434908435530647,
                            0.03417774374093277
                        ],
                        "name": "query1"
                    },
                    {
                        "type": "number",
                        "meta": {
                            "unit": [
                                {
                                    "scale_factor": 1.0,
                                    "name": "second",
                                    "family": "time",
                                    "short_name": "s",
                                    "plural": "seconds",
                                    "id": 11
                                },
                                null
                            ]
                        },
                        "values": [
                            44.23442286901232,
                            114.35570798348397
                        ],
                        "name": "query2"
                    },
                    {
                        "type": "number",
                        "meta": {
                            "unit": [
                                {
                                    "scale_factor": 1.0,
                                    "name": "hit",
                                    "family": "cache",
                                    "short_name": null,
                                    "plural": "hits",
                                    "id": 39
                                },
                                null
                            ]
                        },
                        "values": [
                            5.501870351870352,
                            32.807906894100927
                        ],
                        "name": "query3"
                    },
                    {
                        "type": "number",
                        "meta": {
                            "unit": [
                                {
                                    "scale_factor": 1.0,
                                    "name": "error",
                                    "family": "general",
                                    "short_name": "err",
                                    "plural": "errors",
                                    "id": 44
                                },
                                null
                            ]
                        },
                        "values": [
                            null,
                            3.8181818181818185
                        ],
                        "name": "query4"
                    },
                    {
                        "type": "number",
                        "meta": {
                            "unit": null
                        },
                        "values": [
                            0.0,
                            0.11637992726894603
                        ],
                        "name": "query4 / query3"
                    }
                ]
            }
        }
    ]
}

预期输出:

service         query1              query2              query3              query4              query4 / query3
service_aaaaaa  0.04434908435530647 44.23442286901232   5.501870351870352   null                0.0
service_bbbbbb  0.03417774374093277 114.35570798348397  32.807906894100927  3.8181818181818185  0.11637992726894603

我尝试了几种方法,但都没有成功。

import json

import pandas as pd

d = json.loads(text)

pd.DataFrame(dict((_['name'], _['values']) for _ in d['data'][0]['attributes']['columns']))

在此处输入图片说明

text是你的 json 文本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM