我需要使用pyspark/python将json扁平化为键和值,这样所有嵌套的键都会进入一个列值中,而相应的值则会进入另一个列中。
同样要注意的是input json是动态的,所以在下面的例子中可能有多个子键和子键。如果有人能在这方面提供帮助,我们将不胜感激
示例json输入:
{
"key1": {
"subkey1":"1.1",
"subkey2":"1.2"
},
"key2": {
"subkey1":"2.1",
"subkey2":"2.2",
"subkey3": {"child3": { "subchild3":"2.3.3.3" } }
}
}
预期输出:
| 识别号|键|价值|
| - ------|- ------|- ------|
| 1个| key1.subkey1 |1.1节|
| 第二章| key1.subkey2 |第1.2条|
| 三个| key2.subkey1 |二、一|
| 四个| key2.subkey2 |二、二|
| 五个| key2.subkey3.child3.subchild3 |2.3.3.3|
1条答案
按热度按时间41zrol4v1#
下面的代码为您提供了完成所需的全部内容:
印刷品
它使用递归调用函数来创建结果表的行。
由于我不使用pyspark,所以所示表格是使用Pandas创建的。
另请参见here(“Flatten nested dictionary,compressing key”),了解一种通用且灵活的方法,用于扁平化嵌套字典,同时处理列表值。