• V
 

解析 CSV 输入

问题

您想解析 CSV 数据以处理其中包含的值。

解决方案

CSV 节点可用于解析 CSV 并从中生成 JavaScript 对象。

示例

[{"id":"73e4e16.4d9742","type":"inject","z":"64133d39.bb0394","name":"Inject","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":780,"wires":[["2bef78fd.ae70f8"]]},{"id":"90ed51dc.dcc71","type":"csv","z":"64133d39.bb0394","name":"","sep":",","hdrin":true,"hdrout":false,"multi":"mult","ret":"\\n","temp":"","skip":"1","x":410,"y":780,"wires":[["9aace6e7.adc538"]]},{"id":"9aace6e7.adc538","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":570,"y":780,"wires":[]},{"id":"2bef78fd.ae70f8","type":"template","z":"64133d39.bb0394","name":"CSV 数据","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"# 这是一段随机数据\na,b,c\n80,18,2\n52,36,10\n91,18,61\n32,47,65","output":"str","x":260,"y":780,"wires":[["90ed51dc.dcc71"]]}]

讨论

在此示例中,流注入了包含 CSV 数据的有效负载:

# 这是一段随机数据
a,b,c
80,18,2
52,36,10
91,18,61
32,47,65

CSV 已配置为忽略输入的第一行,因此它会忽略初始注释行。然后它使用下一行来获取列名,剩余的行用于数据。

在这个特定示例中,节点还配置为发送包含所有数据的单条消息。最终得到的消息有效负载为:

[
    { a: 80, b: 18, c: 2},
    { a: 52, b: 36, c: 10},
    { a: 91, b: 18, c: 61},
    { a: 32, b: 47, c: 65},
]

还可以配置节点为每一行数据发出一条消息。在此模式下,消息还将包括 msg.parts 属性,允许它们传递到 Join 节点以重新组装回单个数组。