javascript - 在 Typescript 中读取 CSV 在读取数字时会给出 NaN
问题描述
好吧,我正在尝试使用 Typescript 读取 CSV 文件
这是我的代码:
export default class Playlist{
public playlistId: Number = 0;
public playlistName: string = '';
constructor(line:string){
const item = line.split(',')
this.playlistId = +item[0];
this.playlistName = item[1];
}
}
fs.readFile('.\\csv\\playlist.csv', 'utf8',(err, res) => {
if(err){
console.error('YEET');
return;
}else{
const playlists = res.split('\n').slice(1).map((x:string) => new Playlist(x))
console.log(playlists)
}
})
这是 CSV 数据:
"1","Music"
"2","Movies"
"3","TV Shows"
"4","Audiobooks"
这是我得到的播放列表对象:
Playlist { playlistId: NaN, playlistName: '"Music"\r' },
正如您所看到的 playlistId 我得到 NaN 但我不知道为什么,因为我将它正确解析为一个数字。此外,播放列表的名称也不必采用奇怪的格式。
解决方案
如果您看到您的播放列表名称,它包含一对额外的双引号'"Music"\r'
。
在你 parse 之前item[0]
,它也应该看起来像'"1"'
并且在你解析它时应该+'"2"'
是 NaN。
一个简单的解决方法是将所有引号替换为空字符,有效地将解析更改为+item[0].replace(/\"/g, "")
推荐阅读
- python - 在 Azure Batch 上运行 python 脚本
- c++98 - 分配给结构内的引用
- python - 无法在 spyder 中导入张量流
- javascript - 未通过 XMLHttpRequest 发送数据
- javascript - 如何遍历具有嵌套对象的 json 对象以获取所需的数据
- twitter-bootstrap - 如何修复加载资源失败:在 Bootstrap 3 SASS 上加载 Glyphicons 字体时出现 404(未找到)错误
- python - 我无法从 picamera 流式传输图像
- c# - Microsoft Graph 和无用户访问
- python-2.7 - ValueError:形状(1,4)和(5,4)未对齐:4(dim 1)!= 5(dim 0),将我的变量添加到我的预测机器时
- apache-spark - Scala-Spark:过滤 DataFrame 性能和优化