Python 具有多个嵌套级别的JSON解析

Python 具有多个嵌套级别的JSON解析,python,json,Python,Json,我们有多个嵌套级别的源JSON,这些级别需要展平,然后插入到关系表中 这里的问题是,返回的多个对象具有不同的嵌套级别。我们希望构建一个通用的JSON解析器,将任何JSON都展平并插入到表中 例如,类型1: { "a": 1, "b": 2, "c": 3, "d": [ { "a1": "i_1", "b1": "i_2" }, { "a1":

我们有多个嵌套级别的源JSON,这些级别需要展平,然后插入到关系表中

这里的问题是,返回的多个对象具有不同的嵌套级别。我们希望构建一个通用的JSON解析器,将任何JSON都展平并插入到表中

例如,类型1:

{
    "a": 1,
    "b": 2,
    "c": 3,
    "d": [
        {
            "a1": "i_1",
            "b1": "i_2"
        },
        {
            "a1": "j_1",
            "b1": "j_2"
        }
    ]
}
第2类:

{
    "a": 1,
    "b": 2,
    "d": [
        {
            "a1": 1,
            "b1": 2,
            "c1": [
                {
                    "a2": 1
                }
            ]
        }
    ]
}
我想设计一个黑盒,在这里我只需输入JSON,可能只有几个参数可以将其展平,然后插入到类型1和类型2 JSON的对应表中。是否可以在python函数中处理所有可能的情况

这是我需要的类型1的样本输出-

col a | col b | col c| col d_a1 | col d_b1

1          2      3       i_1        i_2
1          2      3       j_1        j_2 

您需要创建一个递归函数

def recursive_object_to_table(json, prefix=''):
    for key in json:
        new_key = prefix + key
        if type(json[key]) is not dict:
            if new_key not in table:
                table[new_key] = []
            table[new_key].append(json[key])
        else:
            recursive_object_to_table(json[key], new_key + '_')

如果输入是{code>{a:[{b:1},{b:2}],“c:[{b:3},{b:4}]},该怎么办?结果表是否有4行?输入字典中可能的值类型是什么?问题到底是什么?