簡體   English   中英

為什么我的CSV沒有寫入任何數據?

[英]Why isn't my CSV being written without any data?

我正在編寫一個函數,該函數吸收了我在T恤網站上執行的Web抓取的結果。

每件T恤都已存儲為對象,其中包含標題,價格,imgUrl,URL和時間。 這些對象中的每一個都存儲在一個數組中,其中包含所有T恤。

在此函數中,我首先將數組轉換為JSON字符串。 我控制台登錄此,只是為了檢查是否正確完成。

然后,如果該文件夾尚不存在,我將其稱為數據。

我列出了我想要的CSV字段。

然后,我通過傳入數據(JSON字符串)和文件路徑來寫入文件,並將其設置為覆蓋。

現在,當我調用該函數時,它完成了所有必需的工作,但當我打開CSV文件時,這些列的標題正確,但是表完全為空。

有任何想法嗎? 非常感謝您的投入,謝謝!

代碼如下:

var json2csv = require('json2csv');
var fs = require('fs');

function convertJson2Csv(){

//The scraper should generate a folder called `data` if it doesn’t exist.
var dir ='./data';

if(!fs.existsSync(dir)){
    fs.mkdirSync(dir);
};

var tshirtArray = [ { 
    Title: 'Mike the Frog Shirt, Orange',
    Price: '$25',
    ImageURL: 'img/shirts/shirt-108.jpg',
    URL: 'http://shirts4mike.com/shirt.php?id=105',
    Date: 'September 23rd 2016, 12:28:49 am' 
},{ 
    Title: 'Logo Shirt, Teal',
    Price: '$20',
    ImageURL: 'img/shirts/shirt-107.jpg',
    URL: 'http://shirts4mike.com/shirt.php?id=105',
    Date: 'September 23rd 2016, 12:28:49 am' 
},{ 
    Title: 'Logo Shirt, Gray',
    Price: '$20',
    ImageURL: 'img/shirts/shirt-106.jpg',
    URL: 'http://shirts4mike.com/shirt.php?id=105',
    Date: 'September 23rd 2016, 12:28:49 am' 
},{ 
    Title: 'Mike the Frog Shirt, Yellow',
    Price: '$25',
    ImageURL: 'img/shirts/shirt-105.jpg',
    URL: 'http://shirts4mike.com/shirt.php?id=105',
    Date: 'September 23rd 2016, 12:28:50 am' 
}];

var tshirtJson = JSON.stringify(tshirtArray);

var fields = ['Title', 'Price', 'ImageURL', 'URL', 'Date'];

var csv = json2csv({ data: tshirtJson, fields: fields });

console.log(csv);

fs.writeFile('./data/file.csv', csv, {overwrite: true}, function(err) {
    if (err) throw err;
    console.log('file saved');
});
 };

convertJson2Csv();

您的數據對象具有小寫鍵。 您的fields數組還沒有。

var fields = ['Title', 'Price', 'ImageURl', 'URL', 'Date'];

JavaScript區分大小寫。 字段名稱必須與對象鍵匹配。

可能無法將字段與對象屬性匹配。 我在tshirtArray對象上看到了一個具有'img'屬性,在字段中是一個'imageURl'。

嘗試將對象更改為:

var tshirtArray = [ { 'Price': '$20',
'ImageURl': 'img/shirts/shirt-107.jpg',
'Title': 'Logo Shirt, Teal',
'URL': 'http://shirts4mike.com/shirt.php?id=105',
'Date': 'September 22nd 2016, 11:17:48 pm' },
 ...
];

您還可以通過傳遞字段名稱來使標題漂亮:

https://github.com/zemirco/json2csv#example-4

暫無
暫無

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

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