【发布时间】: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