Vorwort
In früheren Kapiteln habe ich beschrieben, wie man mit json - und xml-Daten in Node-RED arbeitet. Aber dann fragte mich ein Leser, wie
mit Daten im yaml-Format und Daten im csv-Format in node-red verarbeitet. Das yaml-Datenformat ist ein Datenformat, das in den letzten Jahren in der Cloud nativ geworden ist. Da keine mittleren Klammern erforderlich sind, ist das Format elegant und wird von Entwicklern geliebt. Ressourcen-Definitionen in der Cloud können mit YAML-Dateien definiert werden. Das CSV-Format ist eine teilte Textdatei, die umgesetzt wird. Sie können mit Daten in Excel konvertieren.
Datenverarbeitung im YAML-Format
Die Verarbeitung von Daten imyaml- Format wird hauptsächlich durch den YAML-Knoten durchgeführt. Dieser Knoten ermöglicht die wechselnde Konvertierung zwischen Zeichenfolgen im YAML-Format und deren JavaScript-Objekten, dem json-Datenformat.
Eingabe:
Payload Objekt| Zeichenkette
JavaScript-Objekt oder YAML-Zeichenfolge.
Export:
Payload-Object| String
● Wenn die Eingabe eine YAML-String ist, versucht es, sie als JavaScript-Objekt zu analysieren.
● Wenn die Eingabe ein JavaScript-Objekt ist, erzeugt es eine YAML-Zeichenfolge.
Hier ist ein Beispiel:
kann eine Zeichenfolge von yaml in ein json-Objekt
wie eine Zeichenfolgevariable konvertieren.{"a":1, "b":[1,2,3]} Die Umwandlung in YAML wird
a: 1
b:
- 1
- 2
- 3
Vollständiger Datenstrom
[{"id":"f231967.0251a68","type":"inject","z":"64133d39.bb0394","name":"YAML String","topic":"","payload":"{"a":1}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":320,"wires":[["a0110756.ecfa48"]]},
{"id":"8f8f31b7.1f916","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":590,"y":320,"wires":[]},
{"id":"5138ba3.c972444","type":"inject","z":"64133d39.bb0394","name":"Object","topic":"","payload":"{"a":1, "b":[1,2,3]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":360,"wires":[["2fa653cc.60d3dc"]]},
{"id":"50f2f4c.4a6e60c","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":430,"y":360,"wires":[]},
{"id":"a0110756.ecfa48","type":"template","z":"64133d39.bb0394","name":"","field":"payload","fieldType":"msg","format":"yaml","syntax":"plain","template":"a: 1nb:n - 1n - 2n - 3","output":"str","x":280,"y":320,"wires":[["104b80e2.51068f"]]},
{"id":"2fa653cc.60d3dc","type":"yaml","z":"64133d39.bb0394","property":"payload","name":"","x":250,"y":360,"wires":[["50f2f4c.4a6e60c"]]},
{"id":"104b80e2.51068f","type":"yaml","z":"64133d39.bb0394","property":"payload","name":"","x":430,"y":320,"wires":[["8f8f31b7.1f916"]]}]CSV-Format Datenverarbeitung
Für das CSV-Format ist es eine Möglichkeit, die Daten im CSV-Format auszugeben, z. B. jede Zeile durch Kommas getrennt. Die Datenverarbeitung im CSV-Format ist nicht ohne den eigenen CSV-Knoten von node-red ausgestattet.
Wechselbeziehungen zwischen Zeichenfolgen im CSV-Format und deren JavaScript-Objektdarstellung.
Import:
payload object| Die Gruppe| String
JavaScript-Objekt, Array oder CSV-String.
Export:
payload Object| Die Gruppe| String
- Wenn es sich bei der Eingabe um eine Zeichenfolge handelt, wird es versuchen, sie in CSV zu analysieren und ein JavaScript-Objekt für jede Zeile mit Schlüssel / Wertpaaren zu erstellen. Der Knoten sendet dann eine Nachricht für jede Zeile oder eine Nachricht, die ein Array von Objekten enthält.
- Wenn die Eingabe ein JavaScript-Objekt ist, wird es versuchen, eine CSV-Zeichenfolge zu erstellen.
- Wenn es sich bei der Eingabe um ein Array mit einfachen Werten handelt, wird eine einzeilige CSV-Zeichenfolge erstellt.
- Wenn es sich bei der Eingabe um ein Array-Array oder ein Objekt-Array handelt, wird eine mehrzeilige CSV-Zeichenfolge erstellt.
Eine Spaltenvorlage kann eine geordnete Liste mit Spaltennamen enthalten. Wenn Sie CSV in ein Objekt konvertieren, wird der Spaltename als Attributname verwendet. Oder Sie können den Spaltennamen aus der ersten Zeile des CSV abrufen.
Bei der Konvertierung in CSV wird die Spaltenvorlage verwendet, um die Attribute zu identifizieren, die von einem Objekt extrahiert werden, sowie die Reihenfolge, in der sie extrahiert werden.
Wenn es sich bei der Eingabe um ein Array handelt, wird die Spaltenvorlage nur zum selektiven Generieren einer Zeile-Spalten - Überschrift verwendet.
Solange die EigenschaftpartsMit dieser Eigenschaft kann der Knoten mehrere Eingaben akzeptieren.
Wenn mehrere Nachrichten ausgegeben werden, werden sie festgelegt.parts- Eigenschaft gesetzt und eine vollständige Nachrichtensequenz erstellt.
Hinweis:Spaltenvorlagen müssen durch Kommas getrennt werden, auch wenn es bereits andere Trennzeichen in den Daten gibt.
Konfigurationsseite für CSV-Knoten

Der CSV-Knoten kann das json-Datenformat in eine Zeichenfolge konvertieren.
如
{
a: 10,
b: 20,
c: 30
}kann in"10,20,30n"
über CSV konvertiert werden Sie können auch Arrays
über CSV konvertieren, wie die folgenden Arrays,
[
{ a: 80, b: 18, c: 2},
{ a: 52, b: 36, c: 10},
{ a: 91, b: 18, c: 61},
{ a: 32, b: 47, c: 65},
]kann in
a,b,c
80,18,2
52,36,10
91,18,61
32,47,65über CSV konvertiert werden Vollständige Beispiele Stream-Code
[{"id":"457d9ad6.b737b4","type":"inject","z":"64133d39.bb0394","name":"single","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":640,"wires":[["1e05fafd.887b05"]]},{"id":"1e05fafd.887b05","type":"change","z":"64133d39.bb0394","name":"Generate single payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"{ "a":$floor(100*$random()),"b":$floor(100*$random()),"c":$floor(100*$random())}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":270,"y":640,"wires":[["e9546682.b39898"]]},
{"id":"e9546682.b39898","type":"csv","z":"64133d39.bb0394","name":"","sep":",","hdrin":"","hdrout":false,"multi":"one","ret":"\n","temp":"a,b,c","skip":"0","x":450,"y":640,"wires":[["f83ad3b0.78d32"]]},
{"id":"f83ad3b0.78d32","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":590,"y":640,"wires":[]},
{"id":"ae242f2c.d1c8a","type":"inject","z":"64133d39.bb0394","name":"array","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":700,"wires":[["7535f521.4a88bc"]]},
{"id":"7535f521.4a88bc","type":"change","z":"64133d39.bb0394","name":"Generate array payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"[t { "a":$floor(100*$random()),"b":$floor(100*$random()),"c":$floor(100*$random())},t { "a":$floor(100*$random()),"b":$floor(100*$random()),"c":$floor(100*$random())},t { "a":$floor(100*$random()),"b":$floor(100*$random()),"c":$floor(100*$random())},t { "a":$floor(100*$random()),"b":$floor(100*$random()),"c":$floor(100*$random())}t]","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":270,"y":700,"wires":[["f4e0465f.ef0338"]]},
{"id":"f4e0465f.ef0338","type":"csv","z":"64133d39.bb0394","name":"","sep":",","hdrin":"","hdrout":true,"multi":"one","ret":"\n","temp":"a,b,c","skip":"0","x":450,"y":700,"wires":[["6eb67fdf.58626"]]},
{"id":"6eb67fdf.58626","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":590,"y":700,"wires":[]}]
csv konvertieren zu JSON
Zusätzlich kann CSV-Knoten auch Daten im CSV-Format in JSON-Daten konvertieren.
Dies ist ein CSV-Format von Daten
a,b,c
80,18,2
52,36,10
91,18,61
32,47,65Über den CSV-Knoten, kann es in das Standard-JSON - Format konvertiert werden

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