我们有多个嵌套级别的源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,可能会有几个参数将其展平,然后插入到Type 1和Type 2 Jsons的相应表中。是否可以在python函数中处理所有可能的情况
这是Type 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
答案 0 :(得分:0)
你需要做一个递归函数。
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 + '_')