为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥9229398 2023-04-18 16:23:45
我有一个带有数组字段的 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_properties99999,11,string0199999,22,string0299999,33,string03...感谢您的帮助
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

使用 NiFi

按此顺序:

  1. EvaluateJsonPath 从 workorder_id ( $.workorder_id)创建属性

  2. 输出将它发送到 Split Json$.properties.*

  3. splitjson 的输出将它发送到 evaluatejson,您将在其中提取数组。

    id = $.id
    propertyType_id = $.propertyType.id
    propertyType_name = $.propertyType.name

现在您的每个流程都将带有此属性:

workorder_id,id,propertyType_id,propertyType_name
  1. 使用此列表使用 AttributestoCSV

    workorder_id,id,propertyType_id,propertyType_name

  2. 合并内容

  3. putfile(保存你的 csv)


查看完整回答
反对 回复 2023-04-18
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信