下面的嵌套循环应使您更加接近:
import jsonfrom json import dumpsjson_dict = {}json_dict['group_list'] = []for grp, grp_data in df.groupby('Group'): grp_dict = {} grp_dict['group'] = grp for cat, cat_data in grp_data.groupby('Category'): grp_dict['category_list'] = [] cat_dict = {} cat_dict['category'] = cat cat_dict['p_list'] = [] for p, p_data in cat_data.groupby('P'): p_data = p_data.drop(['Category', 'Group'], axis=1).set_index('P') for d in p_data.to_dict(orient='records'): cat_dict['p_list'].append({'p': p, 'date_list': [d]}) grp_dict['category_list'].append(cat_dict) json_dict['group_list'].append(grp_dict)json_out = dumps(json_dict)parsed = json.loads(json_out)导致:
json.dumps(parsed, indent=4, sort_keys=True){ "group_list": [ { "category_list": [ { "category": "A", "p_list": [ { "date_list": [ { "End": "2014/01/02", "Start": "2014/01/01", "Value": -0.0061 } ], "p": "A" }, { "date_list": [ { "End": "2015/08/21", "Start": "2015/07/11", "Value": 1.5 } ], "p": "A" } ] } ], "group": "A" }, { "category_list": [ { "category": "Q", "p_list": [ { "date_list": [ { "End": "2014/09/30", "Start": "2013/05/19", "Value": -100.0 } ], "p": "D" } ] } ], "group": "N" }, { "category_list": [ { "category": "U", "p_list": [ { "date_list": [ { "End": "2016/01/05", "Start": "2016/01/01", "Value": 2.75 } ], "p": "C" } ] } ], "group": "R" } ]}


