如何将 JSON 转换为 CSV,然后将其作为 CSV 文件保存到计算机
How to convert JSON to CSV and then save to computer as CSV file
我目前正在尝试从 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。
您可能没有启动 promise,看起来您没有正确使用 json2csv。
看看这个例子:
let json2csv = require("json2csv");
let fs = require("fs");
apiDataPull = Promise.resolve([
{
'day': '*date*',
'revenue': '*revenue value*'
}]).then(data => {
return json2csv.parseAsync(data, {fields: ['day', 'revenue', 'totalImpressions', 'eCPM']})
}).then(csv => {
fs.writeFile('pubmaticData.csv', csv, function (err) {
if (err) throw err;
console.log('File Saved!')
});
});
保存的文件是:
"day","revenue","totalImpressions","eCPM"
"*date*","*revenue value*",,
您可以使用这个 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,您将看到 formatted_json.csv 在 index.js 所在的同一目录中创建。希望这可以帮助!
我目前正在尝试从 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。
您可能没有启动 promise,看起来您没有正确使用 json2csv。
看看这个例子:
let json2csv = require("json2csv");
let fs = require("fs");
apiDataPull = Promise.resolve([
{
'day': '*date*',
'revenue': '*revenue value*'
}]).then(data => {
return json2csv.parseAsync(data, {fields: ['day', 'revenue', 'totalImpressions', 'eCPM']})
}).then(csv => {
fs.writeFile('pubmaticData.csv', csv, function (err) {
if (err) throw err;
console.log('File Saved!')
});
});
保存的文件是:
"day","revenue","totalImpressions","eCPM"
"*date*","*revenue value*",,
您可以使用这个 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,您将看到 formatted_json.csv 在 index.js 所在的同一目录中创建。希望这可以帮助!