gpt4 book ai didi

python - 从 DataFrame 到嵌套的 Json 对象

转载 作者:行者123 更新时间:2023-12-04 04:14:42 25 4
gpt4 key购买 nike

例如,我有一个数据框 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"
}

实际上,在新创建的“里程碑”字段下,我将创建嵌套类别“creation”和“transp”。它们将分别包含 s1,plan1,prop1 和 s2,plan2,prop2 的值

我有从这里获取的代码:Convert Pandas Dataframe to nested JSON但这还不足以解决我的问题,因为我想在 Json (s2, plan2, prop2) 上添加另一个元素数组。

j = (df.groupby(['oID','mode','flow','custom','rag','eve1','eve2'], as_index=False)
.apply(lambda x: x[['s1','plan1','prop1']].to_dict('r'))
.reset_index()
.rename(columns={0:'creation'})
.to_json(orient='records',date_format='iso'))

我努力让“create”和“transp”分别包含元素 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 的帮助。

关于python - 从 DataFrame 到嵌套的 Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60955599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com