我一直在寻找解决问题的方法,但是找不到适用的方法。我正在尝试将高维JSON文件导入Pandas数据框。
结构类似于:
{ 'manufacturing_plant_events':
{ 'data':
{ 'shiftInformation':
{ 'shift1':
{ 'color': 'red'
, 'amount' : 32
, 'order' : None
},
'shift2':
{ 'color': 'blue'
, 'amount' : 44
, 'order' : 1
},
'shift3':
{ 'color': 'green'
, 'amount' : 98
, 'order' : 2
}
}
...}
...}
}
我尝试了许多解决方案,包括:
和其他方法,我尝试将数组展平并将其转换为也不起作用的数据框bu。我不确定这是否可能,或者数据框是否仅支持几层嵌套。
我尝试的拼合只是尝试在包含叶子信息的数据框中创建列。因此,我也可以使用一个数据框,该数据框具有以下列名称,即完整路径和值,即存储在节点中的实际值。
数据框中的第一行:
(
manufacturing_plant_events.data.shiftInformation.shift1.color
'red'
manufacturing_plant_events.data.shiftInformation.shift1.amount
32
manufacturing_plant_events.data.shiftInformation.shift1.order
None
)
以此类推。
任何有关如何解决此问题的建议都将受到赞赏。
答案 0 :(得分:0)
我通过展平dict提出了一个数据框:
import pandas as pd
def flat_dict(dictionary, prefix):
if type(dictionary) == dict:
rows = []
for key, items in dictionary.items():
rows += flat_dict(items, prefix + [key])
return rows
else:
return [prefix + [dictionary]]
def dict_to_df(dictionary):
return pd.DataFrame(flat_dict(dictionary, []))
肯定要感谢json
软件包,才能将json作为dict导入。