【问题标题】:Python csv conversion to specific nested jsonPython csv 转换为特定的嵌套 json
【发布时间】:2019-07-26 16:30:19
【问题描述】:

我有一个数据框(加载到 Pandas 中的 csv 文件),如下所示:

col1    col2    col3    col4    col5    name    amount
1       USA     4000    Air     60  Education   200
1       USA     4000    Air     60  Car         100
1       USA     4000    Air     60  Restaurant  100
2       UK      5000    Cash    50  Government  125
2       UK      5000    Cash    50  Restaurant  135

现在,我需要将其转换为嵌套的 json 格式。对于一条记录(Col1、col2、col3、col4 - 考虑分组)

预期输出低于 Json 格式:

{
 “col5”: 60,
 “col4”: [
   {
     “name”: “Air”
   }
 ],
 “expenses”: [
   {
     “amount”: 200,
     “name”: “Education”
   },
   {
     “amount”: Car,
     “name”: “Car”
   },
   {
     “amount”: 100,
     “name”: “Restaurant”
   }
 ],
 “col1”: 1,
 “col2”: “USA”,
 “col3”: “4000”
}

我明白,这将是有点复杂的代码...但是有人可以帮忙吗? 提前致谢!!

【问题讨论】:

    标签: json python-3.x pandas


    【解决方案1】:

    我相信你需要:

    对于字典:

    d = (df.groupby(['col1','col2','col3','col4','col5'])
           .apply(lambda x: dict(zip(x['name'], x['amount'])))
           .reset_index(name='expenses')
           .to_dict(orient='records')
           )
    print (d)
    

    对于 json:

    j = (df.groupby(['col1','col2','col3','col4','col5'])
           .apply(lambda x: dict(zip(x['name'], x['amount'])))
           .reset_index(name='expenses')
           .to_json(orient='records')
           )
    print (j)
    

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 2021-05-17
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多