Python 从DataFrame到嵌套Json对象
我有一个dataframe df,第一条记录如下所示,例如: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
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))