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