Ich muss alle Werte aus einer bestimmten Spalte in einer .csv - Datei in ein Array schreiben. Bitte führen Sie das folgende Arbeitsbeispiel aus und beachten Sie, dass alle Werte aus der Spalte Address erfolgreich in die Array-Variable tmpArr geschrieben wurden.

var csvString= "Address,longitude,latitude,geometry\n"+
"1,2,3,4\n5,6,7,8\n2,3,4,5\n6,7,8,9";

var t = d3.csv.parse(csvString);
var tmpArr = t.map(function(d){return d.Address;});
console.log(tmpArr);
<script src="https://d3js.org/d3.v3.min.js"></script>

Aber wie kann ich eine vollständige .csv Datei direkt in die Variable csvString laden?

Ich habe die Datei .csv erfolgreich über Ajax geladen, erhalte aber nur die Ausgabe ,,,

csvToChart("daten/kundenimporte/", "test.csv");

function csvToChart(basepath, filename)
{
    $.ajax({
        url: basepath + filename,
        method: "GET",
        success: myCallback
    });
}

function myCallback(response)
{
    var t = d3.csv.parse(response);
    d3.select("#output").html(
        t.map(function(d){
            return d.Kundengruppe;
        })
    );
}

Ich bekomme ReferenceError: d is not defined.

Wie kann ich meine .csv Datei erfolgreich laden?

0
Black 18 Apr. 2018 im 14:21

2 Antworten

Beste Antwort

Es ist nicht erforderlich, jQuery zu mischen, da D3 Methoden zum bequemen Laden von und Parsing-CSV-Dateien bietet.

In den alten Versionen 3 oder 4 von D3 konnten Sie d3.csv(), der Teil der jetzt veralteten d3-request Modul. Dies verwendet eine Ajax-Anfrage zum Laden des Dateiinhalts:

d3.csv("daten/kundenimporte/test.csv", function(data) {
  d3.select("#output").html(
    data.map(function(d){
      return d.Address;
    })
  );
});

Wenn Sie sich jedoch für ein Upgrade auf Version 5 entscheiden, haben die Dinge leicht geändert, da d3.csv() trotz der Der gleiche Name ist jetzt Teil des d3-fetch -Moduls und gibt ein Versprechen zurück, anstatt ein auszuführen zurückrufen. Ihr Code wird dann:

d3.csv("daten/kundenimporte/test.csv")
  .then(function(data) {   // Handle the resolved Promise
    d3.select("#output").html(
      data.map(function(d){
        return d.Address;
      })
    );
  });
1
altocumulus 18 Apr. 2018 im 12:50

Sie sollten jetzt auf d3 V4 / V5 migrieren. In V4 geht es wie folgt.

d3.csv("your_path_to_csv file", function(data) {
//Your code goes here

//Now you can use 'data' variable as an array of objects
console.log
});

In V5 geht es so

d3.csv("your_path_to_csv file").then(function(data) {
//Your code
});
-2
aniket mule 14 März 2019 im 05:51