gpt4 book ai didi

python - 使用 Python 将多个关系表转换为嵌套的 JSON 格式

转载 作者:行者123 更新时间:2023-11-28 18:05:53 25 4
gpt4 key购买 nike

我正在尝试通过使用 python/pandas 组合多个关系表来创建嵌套的 JSON 对象。我是 Python/pandas 的初学者,所以在这里寻找一些帮助......

在下面的示例中,为了简单起见,我使用 CSV 文件而不是表格

Table1.csv

Emp_id, Gender, Age
1, M, 32
2, M, 35
3, F, 31

Table2.csv

Emp_id, Month, Incentive
1, Aug, 3000
1, Sep, 3500
1, Oct, 2000
2, Aug, 1500
3, Aug, 5000
3, Sep, 2400

我想创建一个像下面这样的 JSON 对象

*Required output:

{
"data": [{
"employee": 1,
"gender": M,
"age": 32,
"incentive": [{
"aug": 3000,
"sep": 3500,
"oct": 2000
}],
"employee": 2,
"gender": M,
"age": 35,
"incentive": [{
"aug": 1500
}],
"employee": 3,
"gender": F,
"age": 31,
"incentive": [{
"aug": 5000,
"sep": 2400
}]
}]
}

最佳答案

使用merge先用左连接,然后是 groupby对字典使用 lambda 函数并转换 to_dict , 最后添加 top key 值并转换为 json:

d = (df1.merge(df2, on='Emp_id', how='left')
.groupby(['Emp_id','Gender','Age'])['Month','Incentive']
.apply(lambda x: [dict(x.values)])
.reset_index(name='Incentive')
.to_dict(orient='records')

)
#print (d)

import json
json = json.dumps({'data':d})

print (json)

{
"data": [{
"Emp_id": 1,
"Gender": "M",
"Age": 32,
"Incentive": [{
"Aug": 3000,
"Sep": 3500,
"Oct": 2000
}]
}, {
"Emp_id": 2,
"Gender": "M",
"Age": 35,
"Incentive": [{
"Aug": 1500
}]
}, {
"Emp_id": 3,
"Gender": "F",
"Age": 31,
"Incentive": [{
"Aug": 5000,
"Sep": 2400
}]
}]
}

关于python - 使用 Python 将多个关系表转换为嵌套的 JSON 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53520719/

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