我正在阅读一个带有encoding/csv库的大 CSV 文件。
但是这个文件有点不标准并且包含非转义引号"打破读者在parser.Read():
2022/06/09 17:33:54 第 2 行第 5 列的解析错误:引用字段中的“无关或缺失”
如果我使用parser.LazyQuotes = true,我会得到:
2022/06/09 17:34:15 记录第2行:字段数错误
错误的 CSV 文件(减少到最小值)foo.csv:
1|2
"a|b
所以我需要删除所有出现的双引号",我目前正在使用从终端对整个文件执行此操作sed 's/"//g',但我想从 Go 脚本中删除它。
知道我正在读取这样的文件,我应该怎么做:
func processCSV(filepath string){
file, err := os.Open("foo.csv")
if err != nil {
log.Fatal(err)
}
parser := csv.NewReader(file)
parser.Comma = '|'
// parser.LazyQuotes = true
_, err = parser.Read() // skip headers
for {
record, err := parser.Read()
if err == io.EOF {
break
}
if err != nil {
log.Fatal(err)
}
// process record
}
}
阿晨1998
万千封印
随时随地看视频慕课网APP
相关分类