python - 将字典展平为数据框
问题描述
不要将此标记为重复。
这是我的字典,test_dict
:
{"Report" : {
"ReportHeader": {
"ReportNum": None,
"Type": {
"source": "user",
"text": "Training"
},
"Reg": "WWWWWW"
}
}
}
我想展平为预期输出为的数据框:
Report.ReportHeader.ReportNum Report.ReportHeader.Type.source Report.ReportHeader.Type.text Report.ReportHeader.Reg
None User Training WWWWWWW
到目前为止我所做的:
data_df = pd.DataFrame.from_dict(test_dict)
在 Dataframe 中生成:
Report
ReportHeader {'ReportNum': None, 'Type': {'source': ...
我也尝试explode
:
data_df = pd.DataFrame(test_dict).explode('Report').reset_index(drop=True)
但我没有得到想要的输出。取而代之的是KeyError:0
.
解决方案
d = {"Report" : {
"ReportHeader": {
"ReportNum": None,
"Type": {
"source": "user",
"text": "Training"
},
"Reg": "WWWWWW"
}
}
}
df = pd.json_normalize(d)
print(df)
印刷:
Report.ReportHeader.ReportNum Report.ReportHeader.Type.source Report.ReportHeader.Type.text Report.ReportHeader.Reg
0 None user Training WWWWWW
推荐阅读
- vue.js - Vue - 无法在方法内部调用 sweetalert2
- c++ - 如何对每行中的每个字母都不同的字符进行排序?
- reactjs - IonReactRouter 不是 JSX 元素的构造函数
- reactjs - 使用 React hooks 进行焦点和模糊输入
- javascript - 在 Angular 9 中,如何在给定时间只允许 div 中的一个切换处于活动状态?
- sql - Oracle XML 解析表多个子元素
- javascript - 如果 value 是,则将 value 评估为 true
- analytics - 收集请求 URL 有什么区别
- pdf - 获取用于签名的 PDF 内容,然后在以后签名
- node.js - 在 Flutter Web 应用程序中对 http 和 https API 服务器的 http GET 请求发生异常