我在Python中使用非常嵌套的字典时遇到问题。它是以下示例:
mydict = {'Carcompany': {'Brand': 'Ford',
'Factory': {'Country': 'Germany',
'Workers': {'Engineers': '150', 'Mechanics': '200'},
'FactoryDetails': [{'FactoryCode': '1',
'FactoryCity': 'Cologne',
'FactoryCityDetail': [{'Shifts': 'Day',
'Days': '7'},
{'Shifts': 'Night', 'Days': '5'}]},
{'FactoryCode': '2',
'FactoryCity': 'Berlin',
'FactoryCityDetail': {'Shifts': 'Night',
'Days': '5'}}]}}}
因此,有些值包含字典列表,而该值又包含带有字典列表的值。深度各不相同,我的目标是创建一个excel电子表格或关系数据库表,如下所示:
我试图通过pd.io.json.json_normalize()来使字典扁平化,以获取pandas数据帧,找到列表,分解列,然后再次使其扁平化。该解决方案确实很慢,并且在更深层和更多嵌套的情况下会失败。
我的想法是使用递归方法,但是到目前为止,在字典列表中(由于更新dict值)或返回每个值的枚举单行,我在stackoverflow上发现的所有内容都失败了。
答案 0 :(得分:1)
不确定您是否研究过flatten_json
Flatten JSON。我用它为我的复杂JSON-flatten_json recursive flattening function for lists