Javascript 如何从tsv文件映射数据?
我有一个将tsv文件转换为json的函数,但我想在json输出中创建键值对。tsvJSON函数返回json,但我想格式化为特定的结构 文件Javascript 如何从tsv文件映射数据?,javascript,arrays,json,csv,Javascript,Arrays,Json,Csv,我有一个将tsv文件转换为json的函数,但我想在json输出中创建键值对。tsvJSON函数返回json,但我想格式化为特定的结构 文件 Row ID O ID O Date Ship Date Ship Type Customer ID Customer Name Seg Country City State Zip Code Region Product ID Category Sub-Category Product Name
Row ID O ID O Date Ship Date Ship Type Customer ID Customer Name Seg Country City State Zip Code Region Product ID Category Sub-Category Product Name Sales Quantity Discount Profit
1 PA-152156 11/9/20 01/19/16 Second Class CG-125 Clay bute Consumer United States Henderson Kentucky 42420 South FUR-BO-10001798 Furniture Bookcases Bush, Somerset Collection Bookcase? 261.96 2 0 41.9136
main.js
const tsvFileData = fs.readFileSync('./filename1.tsv');
const jsonRes = tsvJSON(tsvFileData.toString());
const fs = require('fs');
function tsvJSON(tsv){
var lines=tsv.split("\n");
var result = [];
var headers=lines[0].split("\t");
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split("\t");
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return result; //JSON
}
const fs = require('fs');
const splitBy = ';'
function tsvJSON(tsv){
var lines=tsv.split("\n");
var result = [];
var headers=lines[0].split(splitBy);
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split(splitBy);
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return result; //JSON
}
const tsvFileData = fs.readFileSync('./filename1.tsv');
const jsonRes = tsvJSON(tsvFileData.toString());
console.log(jsonRes)
预期产量
[{
"Row ID": 1, "O ID":"PA-152156","O Date":"11/9/20" , "Ship Date": "01/19/16", and rest of the fields mapping
}]
它不起作用,因为您的tsv文件格式不正确,所以标题总数没有按预期返回 让我们假设这个文件被“分号”分隔,下面的示例将起作用 filename1.tsv
ID;NAME;PHONE_NUMBER
1;WILLIAN;(11)98550-3485
main.js
const tsvFileData = fs.readFileSync('./filename1.tsv');
const jsonRes = tsvJSON(tsvFileData.toString());
const fs = require('fs');
function tsvJSON(tsv){
var lines=tsv.split("\n");
var result = [];
var headers=lines[0].split("\t");
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split("\t");
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return result; //JSON
}
const fs = require('fs');
const splitBy = ';'
function tsvJSON(tsv){
var lines=tsv.split("\n");
var result = [];
var headers=lines[0].split(splitBy);
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split(splitBy);
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return result; //JSON
}
const tsvFileData = fs.readFileSync('./filename1.tsv');
const jsonRes = tsvJSON(tsvFileData.toString());
console.log(jsonRes)
const fs=require('fs');
常量splitBy=';'
函数tsvJSON(tsv){
var lines=tsv.split(“\n”);
var结果=[];
var headers=行[0]。拆分(splitBy);
对于(var i=1;ipattern“\t”将不适用于您的tsv文件。请参阅此处@supercol实现此目的的正确方法可以共享一个示例?我尝试了拆分(/\s\s/),它正在做一些接近预期结果的事情