[英]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' },
...
];
您還可以通過傳遞字段名稱來使標題漂亮:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.