我有这样结构的 json 数据,我想将其转换为数据框:
{
"data": {
"1": {
"Conversion": {
"id": "1",
"datetime": "2024-03-26 08:30:00"
}
},
"50": {
"Conversion": {
"id": "50",
"datetime": "2024-03-27 09:00:00"
}
}
}
}
我通常的方法是使用 json_normalize,如下所示:
df = pd.json_normalize(input['data'])
我的目标是拥有一个仅包含“id”和“datetime”列的表/数据框。
如何跳过数据下方的编号级别并直接进行转换?我会想象这样的事情(这显然不起作用):
df = pd.json_normalize(input['data'][*]['Conversion'])
实现这一目标的最佳方法是什么?任何提示都非常感谢!
您可以使用如下列表理解自行管理 json_normalise 的输入:
pd.json_normalize([v['Conversion'] for v in input['data'].values()])
您必须手动更改双重列表理解中的数据:
这里
json_normalize
不是必需的,工作DataFrame
构造函数:谢谢chepner 的另一个想法
.values
:在
json_normalize
is 参数中max_level
,但工作方式不同: