Verarbeitung von Datenformaten im yaml, csv-Format in node-red

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

Verarbeitung von Datenformaten im yaml, csv-Format in node-red

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
Verarbeitung von Datenformaten im yaml, csv-Format in node-redAbbildung

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

Verarbeitung von Datenformaten im yaml, csv-Format in node-redAbbildung1

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

Verarbeitung von Datenformaten im yaml, csv-Format in node-redAbbildung2
[
    { a: 80, b: 18, c: 2},
    { a: 52, b: 36, c: 10},
    { a: 91, b: 18, c: 61},
    { a: 32, b: 47, c: 65},
]
Relevante Etiketten
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.