如何使用 FastCSV 识别不同的输入模式?
How to identify different input schemas with FastCSV?
以下代码适用于“Winner”类型。该技术是带有节点流的打字稿。
虽然有时有人会上传 winner-2 类型。我想查看 header 并根据 header.
更改格式类型
我可能
- 编写一个函数,读取 header 和 return 基于 'parse' 的流。这是 class 的一部分,所以我可以设置类型。需要排成一排 return 一个。
- 指定 Winner|Winner2 看看会发生什么。在transform
中查看结果
- 制作一个优胜者界面并拉出设置的值。
我正计划重写 header,因为存在不一致之处。
如何解决将这些不同的 CSV 输入规范化为一个理想化结构的问题? rxjs?
import {parse, RowTransformCallback} from "@fast-csv/parse";
stream
.pipe(parse({headers: true}))
.pipe(format<Winner, Winner>({headers: true}))
.transform((row, next): void => {
this.processRow(row, next)
})
.pipe(process.stdout)
.on('error', reject)
.on('end',
(rowCount: number) => console.log(`Parsed ${rowCount} rows`));
});
我在映射函数中重写了 headers 以获取架构 a 和架构 b 并将它们转换为目标架构
stream
.pipe(parse({
headers: headers => headers.map(h => {
if (h === 'Email') {
return 'email'
}
if (h === 'Firstname') {
return 'firstName'
}
return h
}),
}))
以下代码适用于“Winner”类型。该技术是带有节点流的打字稿。
虽然有时有人会上传 winner-2 类型。我想查看 header 并根据 header.
更改格式类型我可能
- 编写一个函数,读取 header 和 return 基于 'parse' 的流。这是 class 的一部分,所以我可以设置类型。需要排成一排 return 一个。
- 指定 Winner|Winner2 看看会发生什么。在transform 中查看结果
- 制作一个优胜者界面并拉出设置的值。
我正计划重写 header,因为存在不一致之处。
如何解决将这些不同的 CSV 输入规范化为一个理想化结构的问题? rxjs?
import {parse, RowTransformCallback} from "@fast-csv/parse";
stream
.pipe(parse({headers: true}))
.pipe(format<Winner, Winner>({headers: true}))
.transform((row, next): void => {
this.processRow(row, next)
})
.pipe(process.stdout)
.on('error', reject)
.on('end',
(rowCount: number) => console.log(`Parsed ${rowCount} rows`));
});
我在映射函数中重写了 headers 以获取架构 a 和架构 b 并将它们转换为目标架构
stream
.pipe(parse({
headers: headers => headers.map(h => {
if (h === 'Email') {
return 'email'
}
if (h === 'Firstname') {
return 'firstName'
}
return h
}),
}))