我正在尝试开发TypeScript类来访问csv文件中的数据。原始电子表格如下所示:

我把它转换成CSV文件,并像这样快速解析它:
import fs from "fs";
const data = fs.readFileSync("Data-Table 1.csv", {
encoding: "utf-8",
});
console.log(data);但是如果它看起来像这样:
启动:run 1848,432-444 W. Ocean Blvd,4,1312-03,-888,,432-444 W. Ocean Blvd,“建议根据CEQA指南证明减轻负面声明(MND 01-14),并批准土地平面图审查,当地沿海发展许可证,和归属暂定区域地图,用于在市中心海岸线规划发展区PD-6分区的442 W. Ocean大道上建设一座由95个住宅单元和153个停车位组成的八层住宅公寓综合体。归属暂定区域地图用于将位于西海洋大道432-444号的两个地块合并为一个地面空间地块和两个空域地块。(第2区)(申请号1312-03)",-888,2,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,写字楼,写字楼“,-999,-999,-999,-888,95,0,-999,1 ,2,153,19,80,-999,0,1,43,21,25,6,0,0,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-888,-888,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999-999,-999,-999,-999,-999,-999,-1,0,-999,-999,12/5/2013,5/21/2015,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-532d,-999,-999,2,-999,-988,0,-999,-999,-999,-999,-999,-999,-999,-990,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,33.767216946954,-118.197018766954,
在整个电子表格中有很多-999没有做任何事情,它是无用的。
但我想要做的是将其开发成可以通过TypeScript类访问的数据结构。
所以我的想法是,理想情况下,数据应该是这样的:
const data = [
{Address: '123 Main Street', Development_Plan: 'Downtown' },
{Address: '21 Peaceful Way', Development_Plan: 'Residential' },
];如何将CSV数据转换为上述格式?
我正在寻找示例代码。我尝试过其他方法,比如在这一团字符串上调用split,并将它们转换为字符串数组,然后映射到每个单独的字符串上,在逗号上拆分,最终得到一个二维字符串。
很明显,我已经找到了上面我想要的东西。
发布于 2021-05-11 09:06:57
我还没有测试过,但它应该可以工作
class Data {
address: string;
developmentPlan: string;
static DELIMITER = ",";
constructor(rawRow: string) {
const data= rawRow.split(Data.DELIMITER);
this.address = data[8];
this.developmentPlan = data[9]; // change the index based on the cols position
}
}
const ROW_DELIMITER = "\r\n";
const rawData = fs.readFileSync("Data-Table 1.csv", {
encoding: "utf-8",
});
const data: Data[] = [];
for (const rawRow of rawData.split(ROW_DELIMITER)) {
data.push(new Data(rawRow));
}
console.log(data);https://stackoverflow.com/questions/67479082
复制相似问题