Python嵌套JSON导入-转换为表格

时间:2018-10-31 10:15:38

标签: python json pandas

我正在尝试导入具有多个嵌套级别的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导入适应每个文件。我想念什么?

1 个答案:

答案 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
相关问题