我有一个JSON文件,其中包含源到目标列的映射。以下是JSON文件示例
{
"dt": [
{
"dtType": "CommonModel",
"filter": {
"fileFilter": [
"*_AE_*.csv"
]
},
"operation": [
{
"targetColumn": "columnNameX",
"sourceColumn": [
"srcColumnX",
"srcColumnY",
"srcColumnZ",
"...."
]
},
{
"targetColumn": "columnNameY",
"sourceColumn": [
"srcColumnY"
]
},
{
"targetColumn": "columnNameY",
"selectvalue": 5
}
]
},
{
"dtType": "CommonModel",
"filter": {
"fileFilter": [
"*ENRL*.csv"
]
},
"operation": [
{
"targetColumn": "columnNameX",
"sourceColumn": [
"srcColumnX",
"srcColumnY"
]
},
{
"targetColumn": "columnNameY",
"sourceColumn": [
"srcColumnY"
]
}
]
}
]
}
根据上述JSON文件,我在JSON的fileFilter标记下具有文件名,目标列和源列,因此根据JSON,我想创建一个目标DF,其中包含JSON中提到的所有targetColumn和值目标列的数量取决于条件,条件是它将首先过滤所有包含 AE (来自“ fileFilter”:[“ _AE _ .csv” ]的名称),然后将检查JSON中的sourceColumn标记,因此根据JSON第1个源列具有数组,这意味着它将检查所有过滤文件中此数组的第1个元素,即数组的第1个列名称存在于任何已过滤文件中,它将将此列值映射到目标DF的columnNameX,否则它将检查下一个列(srcColumnY(数组的第二个元素)),依此类推,如果在这种情况下没有列找到任何已过滤文件目标列的值将为null。同样的算法也在下一个目标列上运行。注意:-根据第三个目标列(columnNameZ)的JSON,selectvalue存在5,因此在这种情况下,目标列将填充为硬编码5。
此过程也将继续处理下一个文件(“ fileFilter”:[“ ENRL .csv”]),这意味着如果文件名包含ENRL,则它将仅过滤那些文件,并且将按照上述算法在同一目标DF中进行源到目标的映射。
任何帮助将不胜感激。如果您有任何疑问,请告诉我。