Python 从深度嵌套的JSON对象回填每日表
我试图获取一个大型、嵌套深度很深的JSON对象,该对象包含营销CRM中的所有联系人及其属性,并将其转换为回填每日表 对象来自参数“Property Mode”=值和历史 JSON对象包含CRM中每个联系人记录的对象列表,其中包含另一个嵌套对象,该对象具有与相应联系人记录相关联的所有属性(每个联系人具有20-80个我需要回填的唯一属性) 在包含属性的对象中,有一个嵌套的对象列表(“下面的示例中为“版本”),其中包含属性值和更新属性时的时间戳 JSON对象示例:Python 从深度嵌套的JSON对象回填每日表,python,json,pandas,etl,hubspot,Python,Json,Pandas,Etl,Hubspot,我试图获取一个大型、嵌套深度很深的JSON对象,该对象包含营销CRM中的所有联系人及其属性,并将其转换为回填每日表 对象来自参数“Property Mode”=值和历史 JSON对象包含CRM中每个联系人记录的对象列表,其中包含另一个嵌套对象,该对象具有与相应联系人记录相关联的所有属性(每个联系人具有20-80个我需要回填的唯一属性) 在包含属性的对象中,有一个嵌套的对象列表(“下面的示例中为“版本”),其中包含属性值和更新属性时的时间戳 JSON对象示例: { "contacts": [
{
"contacts": [
{
"addedAt": 1390574181854,
"uniqueContactId": 204727,
"canonical-vid": 204727,
"portal-id": 62515,
"properties": {
"leadScore": {
"value": "50",
"versions": [
{
"value": "50",
"timestamp": 1493910688065
},
{
"value": "25",
"timestamp": 1494022165157
},
{
"value": "30",
"timestamp": 1493011165157
}
]
},
"lifecycleStage": {
"value": "salesQualifiedLead",
"versions": [
{
"value": "salesQualifiedLead",
"timestamp": 1493911260146
},
{
"value": "marketingQualifiedLead",
"timestamp": 1493911177118
},
{
"value": "lead",
"timestamp": 1493011165157
}
]
}
}
}
]
}
我已经在下面的结构中将对象展平为一个数据帧
| contactId | timestamp | propertyName | propertyValue |
|------------|---------------|----------------|------------------------|
| 204727 | 1493910688065 | leadScore | 50 |
| 204727 | 1494022165157 | leadScore | 25 |
| 204727 | 1494012165567 | leadScore | 30 |
| 204727 | 1493911260146 | lifecycleStage | salesQualifiedLead |
| 204727 | 1493911177118 | lifecycleStage | marketingQualifiedLead |
| 204727 | 1493910832532 | lifecycleStage | lead |
|联系人ID |时间戳|属性名称|属性值|
|------------|---------------|----------------|------------------------|
|204727 | 1493901688065 |领先分数| 50|
|204727 | 1494022165157 |领先分数| 25|
|204727 | 14940165567 |领先分数| 30|
|204727 | 149391260146 |生命周期状态|销售资格标签|
|204727 | 149391177118 |生命周期地产|市场合格率|
|204727 | 14939101832532 |生命周期状态|领先|
我不确定我是否走上了正确的道路。我想我可以将这个数据帧透视并将其连接到一个日期维度表中,然后对数据帧进行分组和填充,但同样,我不相信这是最好的方法
我要寻找的最终结果是一个数据框,其中包含从addedAt日期到当前日期的每天每个联系人的记录,每个属性都有列,包含给定日期该属性的值
e、 十,
|dim|U日期|联系人ID |添加在| leadScore | LifecycleState |
|----------|------------|---------------|-----------|-------------------|
|2019-10-16 | 204727 | 2014-01-24 | 50 | salesQualifiedLead|
| [...] |
|2017-05-04 | 204727 | 2014-01-24 | 50 | salesQualifiedLead|
| [...] |
|2017-04-24 | 204727 | 2014-01-24 | 25 |领先|
|dim_date | contactId | added_at | leadScore | lifecycleStage |
|----------|------------|---------------|-----------|-------------------|
|2019-10-16| 204727 | 2014-01-24 | 50 |salesQualifiedLead |
| [...] |
|2017-05-04| 204727 | 2014-01-24 | 50 |salesQualifiedLead |
| [...] |
|2017-04-24| 204727 | 2014-01-24 | 25 |lead |