我有一个包含3列的配置单元表:id,event_time,payload
payload值是一个非常复杂的json文档,其中包含数十个嵌套的数组和映射,如下所示。 elem1..elemN可以是嵌套数组,也可以是下面带有其他嵌套元素的映射。
{
"entry":[
{"resource": {
"eventType": "typeA",
"elem1": "value",
...
"elemN": "valueN"
}
}
],
"meta": {
"elem1": 123,
}
}
我想将此数据集转换为如下所示的数据框,理想情况下,我不想为这些嵌套资源预先定义架构(它们确实非常复杂)。
id,event_time,event_typeA,... event_typeN
event_type来自entry.resource.eventType。例如,如果我的有效载荷看起来像这样:
{
"entry":[
{"resource": {
"eventType": "typeA",
"elem1": "value",
...
"elemN": "valueN"
}
},
{"resource": {
"eventType": "typeA",
"elem1": "value",
...
"elemN": "valueN"
}
},
{"resource": {
"eventType": "typeB",
"elem1": "value",
...
"elemN": "valueN"
}
},
{"resource": {
"eventType": "typeC",
"elem1": "value",
...
"elemN": "valueN"
}
}
],
"meta": {
"elem1": 123,
}
}
当所有事件类型都转换为数据帧上的一行时,我想获得类似的信息。对于一个给定的有效负载,可能有多个event_type,并且在单个有效负载中可能有多个event_type实例。
id event_time typeA typeB typeC
123 2011-01-01 01:20:00
[
{"resource": {
"eventType": "typeA",
"elem1": "value",
...
"elemN": "valueN"
}
},
{"resource": {
"eventType": "typeA",
"elem1": "value",
...
"elemN": "valueN"
}
]
{"resource": {
"eventType": "typeB",
"elem1": "value",
...
"elemN": "valueN"
}
{"resource": {
"eventType": "typeC",
"elem1": "value",
...
"elemN": "valueN"
}
}