summaryrefslogtreecommitdiffstats
path: root/cmd/jp/csv.go
blob: 08ce65c840785cf4e22274578b4f2bdcbc3d34ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
}