我试图忽略代码中的csv.ErrFieldCount
错误,但似乎只能查看那个错误。我在这里做错了什么?
record, err := reader.Read()
if err != nil {
if err == csv.ErrFieldCount {
return nil
}
return err
}
但是当我运行代码时,csv文件的最后一行给了我这个错误pan line 11535, column 0: wrong number of fields in line
答案 0 :(得分:14)
csv.Reader
没有返回该错误,它会返回csv.ParseError
。首先需要检查是否有ParseError,然后检查Err字段:
if err, ok := err.(*csv.ParseError); ok && err.Err == csv.ErrFieldCount {
return nil
}
答案 1 :(得分:8)
将CSV Reader结构中的FieldsPerRecord设置为负数。然后ParseErrors将不会发生不等的字段计数。
见这里:
答案 2 :(得分:5)
是的,它不是真的好记录(也就是说,浏览文档并没有很快给你答案)。虽然Read()
返回error
,但它实际上是*csv.ParseError的一个实例,您可以断言并检查:
record, err := reader.Read()
if err != nil {
if perr, ok := err.(*csv.ParseError); ok && perr.Err == csv.ErrFieldCount {
return nil
}
return err
}