Sesam文档展示了一种扁平列表的方法,但是如何才能使更深层次的结构变得像这样呢?文档指定它不能递归地扁平。
"logdata": {
"metrics": {
"entities": {
"entities_per_second": "~f463.18217846895715"
}
}
}发布于 2018-11-09 12:30:23
您可以使用进行递归平坦,请参见下面的示例:
{
"_id": "recursive-flattening",
"type": "pipe",
"source": {
"type": "embedded",
"entities": [{
"_id": "foo",
"value": {
"logdata": {
"metrics": {
"entities": {
"entities_per_second": "~f463.18217846895715"
}
}
}
}
}]
},
"transform": {
"type": "dtl",
"rules": {
"default": [
["copy", "*"],
["add", "flattened",
["apply", "flatten-dict", "_S.value"]
]
],
"do-flatten": [
["if",
["is-dict", "_S.value"],
["merge",
["apply", "do-flatten",
["key-values",
["map-dict",
["concat", "_S.key", "_", "_."], "_.", "_S.value"]
]
]
],
["add", "_S.key", "_S.value"]
]
],
"flatten-dict": [
["merge",
["apply", "do-flatten",
["key-values", "_S."]
]
]
]
}
}
}这将产生以下结果:
{
"flattened": {
"logdata_metrics_entities_entities_per_second": "~f463.18217846895715"
},
"value": {
"logdata": {
"metrics": {
"entities": {
"entities_per_second": "~f463.18217846895715"
}
}
}
}
}https://stackoverflow.com/questions/53225760
复制相似问题