如何用Python的pandas将嵌套JSON展平为含多层级信息的DataFrame?
解决方案:展平嵌套JSON为结构化DataFrame
你可以直接使用pandas.json_normalize()的record_path和meta参数一步完成嵌套JSON的展平,无需分开处理层级。以下是完整实现代码:
import pandas as pd sample_json ={ "workspaces": [ { "wsid": "1", "wsname": "firstworkspace", "report":[{"reportname":"r1ws1"},{"reportname":"r2ws1"},{"reportname":"r1ws1"}] }, { "wsid": "2", "wsname": "secondworkspace", "report":[{"reportname":"r1ws2"},{"reportname":"r2ws2"},{"reportname":"r1ws2"}] } ]} # 展平嵌套JSON并关联层级字段 df = pd.json_normalize( sample_json['workspaces'], record_path='report', # 指定要展开的嵌套列表字段 meta=['wsid', 'wsname'] # 指定需要保留的上层工作空间字段 ) # 调整列顺序(可选,让结果更符合预期) df = df[['wsid', 'wsname', 'reportname']] print(df)
执行后输出结果:
wsid wsname reportname 0 1 firstworkspace r1ws1 1 1 firstworkspace r2ws1 2 1 firstworkspace r1ws1 3 2 secondworkspace r1ws2 4 2 secondworkspace r2ws2 5 2 secondworkspace r1ws2
参数说明
record_path='report':告诉函数要展开的嵌套列表字段是每个工作空间下的report数组meta=['wsid', 'wsname']:指定需要从上层工作空间层级保留的字段,函数会自动将每个report条目与对应的wsid、wsname关联
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

