【问题标题】:Convert list of objects to Pandas dataframe将对象列表转换为 Pandas 数据框
【发布时间】:2018-12-19 07:59:37
【问题描述】:

我有 JSON 对象列表,其中包含列表和字典。我想为每个级别的每个休假属性创建列并创建一个 Pandas 数据框。我玩了几个小时,想出了一个原始的方法。


我的初始 JSON 对象如下所示:

[
{
    "first_seq": 3329651855,
    "out": {
        "flags": "S",
        "first_window_size": 29200,
        "opt_len": 20,
        "opts": [
            {
                "mss": 1460
            },
            {
                "sackp": null
            },
            {
                "ts": {
                    "val": 1211987020,
                    "ecr": 0
                }
            },
            {
                "noop": null
            },
            {
                "ws": 7
            }
        ]
    },
    "in": {
        "flags": "SA",
        "first_window_size": 26847,
        "opt_len": 20,
        "opts": [
            {
                "mss": 1460
            },
            {
                "sackp": null
            },
            {
                "ts": {
                    "val": 3518874230,
                    "ecr": 1211987020
                }
            },
            {
                "noop": null
            },
            {
                "ws": 7
            }
        ]
    }
},
{
    "first_seq": 3329651855,
    "out": {
        "flags": "S",
        "first_window_size": 29200,
        "opt_len": 20,
        "opts": [
            {
                "mss": 1460
            },
            {
                "sackp": null
            },
            {
                "ts": {
                    "val": 1211987020,
                    "ecr": 0
                }
            },
            {
                "noop": null
            },
            {
                "ws": 7
            }
        ]
    },
    "in": {
        "flags": "SA",
        "first_window_size": 26847,
        "opt_len": 20,
        "opts": [
            {
                "mss": 1460
            },
            {
                "sackp": null
            },
            {
                "ts": {
                    "val": 3518874230,
                    "ecr": 1211987020
                }
            },
            {
                "noop": null
            },
            {
                "ws": 7
            }
        ]
    }
}
]

我想创建以下列:

  • first_sequence
  • out_flag
  • out_window_size
  • out_opts_mss
  • out_opts_sackp
  • out_opts_ts_val
  • in_flag
  • in_window_size
  • in_opts_mss
  • in_opts_sackp
  • in_opts_ts_val

我相信有一种简单的方法可以实现这一点,而不是复制代码。感谢您帮助编写高效的 Python 函数(递归或任何函数)来实现这一点。

【问题讨论】:

  • 使用 json.loads 加载您的 json 对象。加载后它应该是嵌套字典的列表。将每个字典转换为一级字典,然后使用 pd.Dataframe(converted_list) 从转换后的字典列表中构建一个 DataFrame

标签: python list pandas object nested


【解决方案1】:

首先必须将 json 转换为 csv:-

Here you can convert your json to csv easily

转换为 csv 后,您可以轻松地将文件加载到 pandas。

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2021-03-22
    • 2020-03-27
    • 2020-09-02
    • 2021-01-22
    相关资源
    最近更新 更多