diff options
Diffstat (limited to 'cmd/jp/csv.go')
-rw-r--r-- | cmd/jp/csv.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/cmd/jp/csv.go b/cmd/jp/csv.go new file mode 100644 index 0000000..08ce65c --- /dev/null +++ b/cmd/jp/csv.go @@ -0,0 +1,29 @@ +package main + +import "strconv" + +func parseCell(cell string) interface{} { + f, err := strconv.ParseFloat(cell, 64) + if err == nil { + return f + } + b, err := strconv.ParseBool(cell) + if err == nil { + if b { + return 1 + } + return 0 + } + return cell +} + +func parseRows(rows [][]string) (out [][]interface{}) { + out = make([][]interface{}, len(rows)) + for i, row := range rows { + out[i] = make([]interface{}, len(row)) + for j, cell := range row { + out[i][j] = parseCell(cell) + } + } + return +} |