【问题标题】:pandas dataframe to json with multiple keys具有多个键的熊猫数据框到 json
【发布时间】:2021-10-28 17:55:32
【问题描述】:

我有一个看起来像这样的 pandas 数据框:

id x1 x2 x3 action
23432 example1 1 name Create
678786 example2 1 name Create

如何将 pandas 数据帧转换为这种 json 格式?

[
  {
    "action": "Create",
    "payload": {
      "id": "23432",
      "x1": "example1",
      "x2": "1",
      "x3": "name"    
    }
  },
  {
    "action": "Create",
    "payload": {
      "id": "678786",
      "x1": "example2",
      "x2": "1",
      "x3": "name" 
    }
 }
]

我玩过 pd.json_normalize 但无法让它工作。我还引用了this 问题,但由于需要 groupby,所以有点不同。

【问题讨论】:

    标签: python json pandas json-normalize


    【解决方案1】:

    如果您不介意输入列,一种解决方案可以是:

    df['payload'] = df[['id','x1','x2','x3']].to_dict(orient='records')
    df_json = df[['action','payload']].to_json(orient='records')
    print(df_json)
    

    【讨论】:

      【解决方案2】:
      import pandas as pd
      import json
      
      # intialise data of lists.
      data = {'id':['23432', '678786'],
              'x1':['example1', 'example2'],
              'x2':['1', '1'],
              'x3':['name', 'name'],
              'action':['Create', 'Create']}
      
      # Create DataFrame
      df = pd.DataFrame(data)
      
      print(json.dumps(df.apply(func=lambda x:{'action':x.action,'payload':x[['id','x1','x2','x3']].to_dict()},axis=1).to_list()))
      

      【讨论】:

        猜你喜欢
        • 2021-10-26
        • 2019-02-11
        • 2014-02-01
        • 2017-09-10
        • 1970-01-01
        • 2015-04-19
        • 2022-11-17
        相关资源
        最近更新 更多