繁体   English   中英

如何使用 python pandas Z6A8064B5DF479455500553C47C55057D 创建嵌套 json

[英]How to create Nested json using python pandas dataframe

import pandas as pd

data = [['INDIA', 'UP', 'BANARAS'], ['INDIA', 'UP', 'KANPUR'], ['INDIA', 'TN', 'CHENNAI'],  ['US', 'TEXAS', 'HUSTON']]

cols = ['COUNTRY', 'STATE', 'CITY']

df = pd.DataFrame(data=data, columns=cols)

我想要这样的结果...

[
  {
    "COUNTRY": "INDIA",
    "STATE": "TN",
    "CITIES": [
      {
        "CITY": "CHENNAI"
      }
    ]
  },
  {
    "COUNTRY": "INDIA",
    "STATE": "UP",
    "CITIES": [
      {
        "CITY": "BANARAS"
      },
      {
        "CITY": "KANPUR"
      }
    ]
  },
  {
    "COUNTRY": "US",
    "STATE": "TEXAS",
    "CITITES": [
      {
        "CITY": "HUSTON"
      }
    ]
  }
]

你可以试试

out = (df.groupby(['COUNTRY', 'STATE'])
       .apply(lambda g: g[['CITY']].to_dict(orient='records'))
       .to_frame('CITIES')
       .reset_index()
       .to_dict(orient='records'))
pprint(out)

[{'CITIES': [{'CITY': 'CHENNAI'}], 'COUNTRY': 'INDIA', 'STATE': 'TN'},
 {'CITIES': [{'CITY': 'BANARAS'}, {'CITY': 'KANPUR'}],
  'COUNTRY': 'INDIA',
  'STATE': 'UP'},
 {'CITIES': [{'CITY': 'HUSTON'}], 'COUNTRY': 'US', 'STATE': 'TEXAS'}]

将此添加到上面的代码中:

import json

with open("sample.json", "w") as outfile:
    json.dump(out, outfile)

或者您可以删除 to_dict() 并在之后添加此行

out.to_json("filename.json")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM