summaryrefslogtreecommitdiffstats
path: root/cmd/jp/csv.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/jp/csv.go')
-rw-r--r--cmd/jp/csv.go29
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
+}