我正在尝试导入具有多个嵌套级别的json文件(在本例中为FB配置文件导出)。在Excel中,我能够创建一个查询,该查询将在大约一分钟内将所有数据转换为表(将嵌套级别扩展到新列八或九次)。
尽管在python中,使用json函数或pandas读取函数,这似乎是不可能的任务。诸如https://www.kaggle.com/jboysen/quick-tutorial-flatten-nested-json-in-pandas#之类的页面有助于部分平整json,但这仅适用于一个目标级别。要将多个不同的嵌套级别转换为单个表,似乎需要进行多次拼合工作,每个拼合工作都针对相关文件进行了自定义。
我认为json的全部目的是使这些内容变得更容易,对吧?因此,当我可以在大约10次单击中在Excel中执行某项操作时,如果没有深度定制工作就找不到在python中执行此操作的方法,我不禁会怀疑是否丢失了某些内容。有没有简单的方法可以将多层嵌套json自动转换为python中的表?还是至少省力?我要导入一整堆json,以这种速率,最好使用Excel从它们创建csv文件,而不是尝试将python导入适应每个文件。我想念什么?
答案 0 :(得分:0)
尝试一下:
def flatten_json(org_json,sep='_'):
flattened = {}
def flatten_level(d, prefix=''):
if type(d) is dict:
for k in d:
flatten_level(d[k], prefix + k + sep)
elif type(d) is list:
for i,k in enumerate(d):
flatten_level(k, prefix + str(i) + sep)
else:
flattened[prefix[:-1]] = d
flatten_level(org_json)
return flattened