node.js - 如何将 JSON 转换为 CSV,然后作为 CSV 文件保存到计算机
问题描述
我目前正在尝试从 API 中提取 json 数据,使用 json2csv node.js 模块将其转换为 csv,然后将数据作为 csv 文件保存在我的笔记本电脑上。但是,当我运行脚本时,什么也没有发生。
然后,json 数据的格式类似于以下数据变量:
const apiDataPull = postDataRequest()
.then(data => {
data = [
{
'day': '*date*',
'revenue': '*revenue value*'
}
]
这是将数据转换为csv并下载它,这似乎是问题出现的地方:
apiDataPull.then(data => {
json2csv({
data: data,
fields: ['day', 'revenue', 'totalImpressions', 'eCPM']
},
function(err, csv) {
if (err) console.log(err);
fs.writeFile('pubmaticData.csv', csv, function(err){
if (err) throw err;
console.log('File Saved!')
});
});
});
从 API 中提取了数据,但没有保存。我什至不确定它是否已正确转换为 csv。
解决方案
你可以使用这个 npm 包 - csv-stringify。 https://github.com/adaltas/node-csv-stringify
//Load HTTP module
const http = require("http");
var stringify = require('csv-stringify');
const fs = require('fs');
const hostname = '127.0.0.1';
const port = 3000;
//Create HTTP server and listen on port 3000 for requests
const server = http.createServer(async (req, res) => {
stringify(jsonObject, {header:true}, function(err, output) {
fs.writeFile('formatted_json.csv', output, 'utf8', function(err) {
if (err) {
console.log('Some error occured - file either not saved or corrupted file saved.');
} else {
console.log('It\'s saved!');
}
});
});
});
//listen for request on port 3000, and as a callback function have the port listened on logged
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
这应该可以帮助你。创建这个文件 - 将它命名为 index.js 确保你已经安装了 node 和 npm,并在同一个目录中运行
npm install
npm install csv-stringify
node index.js
转到您的浏览器打开 localhost:3000,您将看到在 index.js 所在的同一目录中创建了 formatted_json.csv。希望这可以帮助!
推荐阅读
- reactjs - 未找到 url 中的参数
- android - 如何在android数据绑定中的三元运算符中提及属性(?attr)?
- java - 春季批处理应用程序中堆积的 Atomikos 线程
- sonarqube - 带有 java 项目的声纳扫描仪
- php - PHPUNIT如何测试一个值在一种情况下不存在?
- python - 将 Yahoo 数据转换为 pandas 数据框
- java - 蟒蛇pyjnius; PythonActivity错误我安装了JDK+Visual C++
- mysql - 列相关条件的总和
- reactjs - 使用 ReactJS 如何在 Firestore 中订阅多个 onSnapshot 集合更改
- ffmpeg - 有没有办法在将 mjpeg 流编码为 h264 时强制 ffmpeg 生成 I 帧