将未知JSON结构展平到Pandas数据框

时间:2019-04-01 09:36:57

标签: python json pandas

我正在寻找将JSON输入平整到Pandas数据框的最佳方法的指南需要发现结构时

我已经看过很多关于在Pandas中使用json_normalize函数展平嵌套JSON结构的类似讨论,但是所有解决方案都假定嵌套层的结构和数量是已知的。

但是,在我的情况下,JSON文件是在运行时确定的查询结果,因此,尽管每个级别都有规律性(例如,要解析的嵌套数组中的名称始终为“数据”) ,我无法事先知道我将要拥有多少个水平。

因此,在我开始尝试使用递归函数(对我来说不是那么简单)之前,我想确保某个地方没有现成的解决方案。

这是我要处理的数据类型的一个示例:

{
    "responseStatus": "SUCCESS",
    "responseDetails": {
        "limit": 1000,
        "offset": 0,
        "size": 3,
        "total": 3
    },
    "data": [
        {
            "item1": "value",
            "item2": {
                "responseDetails": {
                    "limit": 250,
                    "offset": 0,
                    "size": 250,
                    "total": 2
                },
                "data": [
                    {
                        "id": "abc"
                    },
                    {
                        "id": 123
                    }               ]
            }
        }
    ]
}

我会对这样一个简单的扁平化结构感到满意:


+-------+-----------------------------+------------------------------+----------------------------+-----------------------------+---------------+
| item1 | item2.responseDetails.limit | item2.responseDetails.offset | item2.responseDetails.size | item2.responseDetails.total | item2.data.id |
+-------+-----------------------------+------------------------------+----------------------------+-----------------------------+---------------+
| value |                         250 |                            0 |                        250 |                           2 | abc           |
| value |                         250 |                            0 |                        250 |                           2 | 123           |
+-------+-----------------------------+------------------------------+----------------------------+-----------------------------+---------------+

谢谢!

R。

0 个答案:

没有答案