使用 Apache Nifi 或 Python 脚本迭代 Json 数组

我有一个带有数组字段的 Json,我想迭代该数组并将其拆分为数组中包含的每个属性的新行或对象。


我目前正在使用 Apache Nifi,但我也可以使用 python 脚本。


我的输入数据是:


{

  "workorder_id" : "99999",

  "properties" : [ {

    "id" : "11",

    "propertyType" : {

      "id" : "55834595398",

      "name" : "action"

    },

    "stringValue" : "string01",

    "nodeValue" : null

  }, {

    "id" : "22",

    "propertyType" : {

      "id" : "55834595419",

      "name" : "Tipo"

    },

    "stringValue" : "string02",

    "nodeValue" : null

  }, {

    "id" : "33",

    "propertyType" : {

      "id" : "44",

      "name" : "Action2"

    },

    "stringValue" : "string02",

    "nodeValue" : null

  }, {

    "id" : "55",

    "propertyType" : {

      "id" : "55834595400",

      "name" : "Action3"

    }

]

}

输出可以是 Json 或 csv。例如在 csv 中:使用相同的 workorder_id 作为键


workorder_id,id_properties,stringValue_properties

99999,11,string01

99999,22,string02

99999,33,string03

.

.

.


感谢您的帮助


慕哥9229398
浏览 145回答 1
1回答

一只甜甜圈

使用 NiFi按此顺序:EvaluateJsonPath 从 workorder_id ( $.workorder_id)创建属性输出将它发送到 Split Json$.properties.*splitjson 的输出将它发送到 evaluatejson,您将在其中提取数组。id = $.id propertyType_id = $.propertyType.id propertyType_name = $.propertyType.name现在您的每个流程都将带有此属性:workorder_id,id,propertyType_id,propertyType_name使用此列表使用 AttributestoCSVworkorder_id,id,propertyType_id,propertyType_name合并内容putfile(保存你的 csv)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python