CSV-Exportproblem in nodejs

9

Ich habe ein Excel-Blatt mit einer Liste von Daten.

  1. Lesen von Excel-Daten
  2. Suche Excel Daten gegen ein anderes System mit API
  3. Aufnahme von Top-Result-Daten und Konvertierung in eine CSV-Datei.

Bis zu diesem Schritt funktioniert gut. Aber danach muss ich die Daten in der CSV-Datei wie Excel-Daten formatieren und die Suchergebnisse müssen beide in der CSV-Datei angezeigt werden.

Hier kann ich Excel-Daten in CSV-Datei nicht bringen.Zum Beispiel "Honda" ist Auto Name in Excel-Datei und ich lese es und suche gegen ein anderes System.Das Ergebnis muss in CSV angezeigt werden.

Bitte beraten.

Excel-Eingabe:

%Vor%

API-Antwortdaten:

%Vor%

Erwartungsausgabe in der CSV-Datei.

%Vor%

Code

%Vor%     
user2848031 22.11.2016, 16:02
quelle

2 Antworten

0

Ich habe Ihren JSON so formatiert, dass ich ihn besser verstehen kann:

%Vor%

Das ist ein bizarrer JSON. Auf der obersten Ebene ist es ein Array mit zwei Elementen. Das erste Element ist ein Objekt und das zweite Element ist ein anderes Array.

Die Werte, nach denen Sie suchen, scheinen

zu sein
  • data[1][0].Make ("Honda") & lt; - beachte das Großbuchstabe M
  • data[1][0].Model ("Accord") & lt; - beachte das Großbuchstabe M
  • data[0].total (10)
  • data[0].results[0].name.val ("Testwert1")
  • data[0].results[0].attributes[0].val ("Testwert2")

... aber ich bin mir nicht sicher.

Von der npm-Seite für json2csv muss das Datenobjekt ein Array von JSON-Objekten sein. Sie müssen Ihre Daten so umstrukturieren, dass json2csv sie versteht. Vielleicht sollte Ihr Datenobjekt so aussehen:

%Vor%     
Dave 22.11.2016 17:03
quelle
0

Ihr JSON sieht wirklich komisch aus, wie bereits erwähnt wurde. Wenn Sie nichts gegen die Struktur tun können, würde ich empfehlen, eine zusätzliche Ebene zu schreiben, um die Daten aus dem geschachtelten Antwortobjekt zu extrahieren. So könnte seine Konfiguration aussehen:

%Vor%

Mit dieser Struktur können Sie

verwenden
  • Geben Sie die Reihenfolge Ihrer Spalten an, indem Sie das Array path und
  • anordnen
  • Geben Sie an, wie get die Daten mithilfe der Funktion getter und
  • erhalten soll
  • Geben Sie an, wie Sie die Spalte mithilfe der name -Eigenschaft benennen.

Sie erstellen Spalten, indem Sie eine Antwort auf einen Pfad eingeben:

%Vor%

Ich habe versucht, im folgenden Snippet ein ausführendes Beispiel zu erstellen. Beachten Sie, dass ich Folgendes musste:

  • Mock die json2csv -Bibliothek, ich konnte keine CDN finden ...
  • Extrahieren Sie das Description -Feld von Ihrem query anstatt von Ihrem response (die API-Antwortdaten hatten keine Beschreibung)

Natürlich wird dieses Snippet im Browser ausgeführt und benötigt möglicherweise zusätzliche Arbeit, um es in nodejs zu portieren.

Der Hauptpunkt ist, dass es zeigt, wie man die Konvertierungslogik zwischen zwei Datenformaten spezifiziert.

%Vor% %Vor%
    
user3297291 29.11.2016 18:00
quelle