Python 从DataFrame到嵌套Json对象

Python 从DataFrame到嵌套Json对象,python,arrays,json,python-3.x,pandas,Python,Arrays,Json,Python 3.x,Pandas,我有一个dataframe df,第一条记录如下所示,例如: oID mode flow custom s1 s2 plan1 plan2 prop1 prop2 rag eve1 eve2 0 AIR DD XWERTR1 29.03.2020 16.04.2020 29.03.2020 16.04.2020 29.03.2020 16.03.2020 G 16.03.2020 17.03.2020 1 SEA PP XWE

我有一个dataframe df,第一条记录如下所示,例如:

oID mode    flow    custom  s1  s2  plan1   plan2   prop1   prop2   rag eve1    eve2
0   AIR DD  XWERTR1 29.03.2020  16.04.2020  29.03.2020  16.04.2020  29.03.2020  16.03.2020  G   16.03.2020  17.03.2020
1   SEA PP  XWERTR1 07.04.2020  25.03.2020  07.04.2020  25.03.2020  07.04.2020  25.03.2020  A   16.03.2020  17.03.2020
2   AIR DD  XWERTR1 04.04.2020  20.03.2020  04.04.2020  20.03.2020  04.04.2020  20.03.2020  G   16.03.2020  17.03.2020
3   AIR DD  XWERTR1 04.04.2020  20.03.2020  04.04.2020  20.03.2020  04.04.2020  20.03.2020  G   16.03.2020  17.03.2020
4   SEA DD  XWERTR1 04.04.2020  20.03.2020  04.04.2020  20.03.2020  04.04.2020  20.03.2020  R   16.03.2020  17.03.2020
我希望json看起来像这样:

{
    "_id" : "0",
    "oID" : "0",
    "custom" : "XWERTR1",
    "mode" : "AIR",
    "flow" : "DD",
    "milestone" : {
        "creation" : {
            "s1" : "29.03.2020",
            "plan1" : "29.03.2020",
            "prop1" : "29.03.2020"
        },
        "transp" : {
            "s2" : "16.04.2020",
            "plan2" : "16.04.2020",
            "prop2" : "16.04.2020"
        }
    }
    "rag" : "G",
    "eve1" : "16.03.2020",
    "eve2" : "17.03.2020"
}
实际上,在“里程碑”新创建的字段下,我将创建嵌套的类别,即“创建”和“传输”。它们将分别包含s1、plan1、prop1和s2、plan2、prop2的值

我从这里得到了以下代码:但这还不足以解决我的问题,因为我想在Json上添加另一个元素数组(s2、plan2、prop2)

我努力让“创建”和“传输”分别包含元素s1、plan1、prop1和s2、plan2、prop2

我该怎么做


谢谢

经过一段时间后,我可以使用模板方法解决问题:

d = """{
    "Ord" : "%s",
    "MOT" : "%s",
    "MVT" : "%s",
    "CUST" : "%s",
    "milestone" : {
        "creation" : {
            "sla" : "%s",
            "plan" : "%s",
            "proposed" : "%s"
        },
        "Pickup" : {
            "sla" : "%s",
            "plan" : "%s",
            "proposed" : "%s"
        }
    }
}
"""
js = []

for item in df.values:
    js.append(json.loads(d%tuple(item.tolist())))

print(json.dumps(js))
感谢@PeterMortesen和RaminNietzsche的帮助

d = """{
    "Ord" : "%s",
    "MOT" : "%s",
    "MVT" : "%s",
    "CUST" : "%s",
    "milestone" : {
        "creation" : {
            "sla" : "%s",
            "plan" : "%s",
            "proposed" : "%s"
        },
        "Pickup" : {
            "sla" : "%s",
            "plan" : "%s",
            "proposed" : "%s"
        }
    }
}
"""
js = []

for item in df.values:
    js.append(json.loads(d%tuple(item.tolist())))

print(json.dumps(js))