1 回答

TA貢獻1817條經驗 獲得超14個贊
這是“普通”CSV 格式,其中分隔符是空格字符而不是逗號或分號。encoding/csv包可以處理這個。
至于您的空/空字段:只需使用循環作為后處理步驟并將它們替換為空字符串。
使用輸入:
const input = `foobar "foo bar" "-" "-" "-" fizzbuzz "fizz buzz" fizz buzz
f2 "fo ba" "-" "-" "-" fd "f b" f b`
解析和后處理它:
r := csv.NewReader(strings.NewReader(input))
r.Comma = ' '
records, err := r.ReadAll()
if err != nil {
panic(err)
}
fmt.Printf("%#v\n", records)
for _, r := range records {
for i, v := range r {
if v == "-" {
r[i] = ""
}
}
}
fmt.Printf("%#v\n", records)
輸出(在Go Playground上試試):
[][]string{[]string{"foobar", "foo bar", "-", "-", "-", "fizzbuzz", "fizz buzz", "fizz", "buzz"}, []string{"f2", "fo ba", "-", "-", "-", "fd", "f b", "f", "b"}}
[][]string{[]string{"foobar", "foo bar", "", "", "", "fizzbuzz", "fizz buzz", "fizz", "buzz"}, []string{"f2", "fo ba", "", "", "", "fd", "f b", "f", "b"}}
- 1 回答
- 0 關注
- 216 瀏覽
添加回答
舉報