【发布时间】:2020-03-31 10:13:11
【问题描述】:
我正在尝试将高度嵌套的 JSON 文件转换为可以轻松加载到数据库表中的数据格式。我一直在使用pandas 库中的json_normalize 将文件的各个部分展平为表格格式。这大部分都有效,但是我遇到了具有以下结构的部分:
{"data": {
"Revenue": {
"2019-05-31": 50,
"2018-05-31": 60,
"2017-05-31": 70,
"2016-05-31": 75,
"2015-05-31": 90,
"2014-05-31": 100
},
"Cost of Revenue": {
"2019-05-31": 45,
"2018-05-31": 40,
"2017-05-31": 57,
"2016-05-31": 58,
"2015-05-31": 68,
"2014-05-31": 70
}
}}
我想将此数据转换为以下格式(假设这是构造此类数据的最佳方式):
measure period end value
Revenue 2019-05-31 50
Revenue 2018-05-31 60
Revenue 2017-05-31 70
Revenue 2016-05-31 75
Revenue 2015-05-31 90
Revenue 2014-05-31 100
Cost of Revenue 2019-05-31 45
Cost of Revenue 2018-05-31 40
Cost of Revenue 2017-05-31 57
Cost of Revenue 2016-05-31 58
Cost of Revenue 2015-05-31 68
Cost of Revenue 2014-05-31 70
我不会提前知道“measure”和“period end”键名是什么,但它总是具有上述结构。我还没有找到一个通用的解决方案,但我对 Python 还是很陌生。
任何帮助或指导将不胜感激。
【问题讨论】:
-
非常感谢,我已经尝试过 'json_normalize',它将为我提供组合度量和期末作为列标题(即收入成本_2014-05-31)。我正在考虑转置它,然后在 '_' 上拆分以将其重新放入列中,但是这样做似乎有点混乱。
标签: python json csv dictionary