簡體   English   中英

D3.csv 未加載 csv 文件

[英]D3.csv not loading the csv file

出於某種原因,我無法使用d3.csv(...)函數加載任何 .csv 文件。 我所做的是使用上面的函數加載一個 csv 文件並將數據直接打印到控制台。

這就是我所做的:

  1. 我使用記事本創建了一個名為 irisData.csv 的文件。 它包括來自https://archive.ics.uci.edu/ml/datasets/Iris的 iris 數據集的一些數據

    sepal_length,sepal_width,petal_length,petal_width,species 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 4.6,3.1,1.5,0.2,Iris-setosa 5,3.6,1.4,0.2,Iris-setosa 5.4,3.9,1.7,0.4,Iris-setosa
  2. 我在irisTest.html 中編寫了這段代碼,將數據打印到控制台中,檢查它是否正常工作。

     ... d3.csv("irisData.csv", type, function(error, data){ console.log(data); }); ...
  3. 不確定這是否相關,但我還是會提出來:為了運行我的 html,我使用 Node.js 來運行服務器。 這是服務器的代碼server.html

     var http = require('http'); fs = require('fs'); http.createServer(function(req, res){ fs.readFile('./irisTest.html', function(err, data){ if(err){ res.writeHead(500, {'Content-type': 'text/plain'}); res.end('500 - Internal Error'); }else{ res.writeHead(200, {'Content-type': 'text/html'}); res.end(data); } }); }).listen(3000);

所以我期望控制台打印出一個由csv文件中的數據組成的對象。 像這樣的東西:

[
  {data...}
  {data...}
  {data...}
  ...
]

然而,我得到的是我的irisTest.html代碼(它是 html 代碼本身)包裝到對象中。 我意識到我在d3.csv("irisData.csv", ...) 中放置什么而不是“irisData.cvs”作為路徑並不重要,它總是輸出我自己的代碼,如下所示。 所以我認為這可能是 csv 文件的路徑有問題,但不應該有。 所有文件都在同一個文件夾中。

 [    
    ...
    {<!DOCTYPE html>: "d3.csv("irisData.csv", type, function(error, data){"}
    {<!DOCTYPE html>: "console.log(data);"}
    {<!DOCTYPE html>: "});}"}
    ...
 ]

有誰知道發生了什么?

正如此處的文檔中所指定的,需要匿名函數而不是type 我引用文檔中的示例:

d3.csv("example.csv", function(d) {
  return {
    year: new Date(+d.Year, 0, 1), // convert "Year" column to Date
    make: d.Make,
    model: d.Model,
    length: +d.Length // convert "Length" column to number
  };
}, function(error, rows) {
  console.log(rows);
});

因此,在您的情況下,應通過以下方式讀取 csv 文件:

d3.csv("irisData.csv",function(data){
    console.log(data);
},function(error, rows){
   console.log(rows); 
});

這是gist 中的一個工作示例,檢查控制台以查看數據對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM