Mercurial > mercurial > hgweb_golang.cgi
comparison src/csv2json/csv2json.go @ 8:bf5d764cd80d
New: csv2json.go
author | pyon@macmini |
---|---|
date | Sun, 13 Nov 2016 14:44:16 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
7:f4ba4cfb09fd | 8:bf5d764cd80d |
---|---|
1 /****************************************************************************/ | |
2 /* csv2json.go */ | |
3 /* Last Change: 2016-11-13 Sun 13:49:23. */ | |
4 /* By T.Mutoh */ | |
5 /****************************************************************************/ | |
6 package main | |
7 | |
8 import ( | |
9 "encoding/csv" | |
10 "encoding/json" | |
11 "flag" | |
12 // "fmt" | |
13 "log" | |
14 "os" | |
15 "strconv" | |
16 ) | |
17 | |
18 type office struct { | |
19 Id string | |
20 Sv string | |
21 Name string | |
22 Addr string | |
23 Phone string | |
24 Fax string | |
25 Capacity int | |
26 } | |
27 | |
28 func main() { | |
29 flag.Parse() | |
30 | |
31 f, err := os.Open( flag.Arg(0) ); if err != nil { | |
32 log.Fatal( err ) | |
33 } | |
34 | |
35 r := csv.NewReader( f ) | |
36 r.Comment = '#' | |
37 records, err := r.ReadAll(); if err != nil { | |
38 log.Fatal( err ) | |
39 } | |
40 | |
41 var offices []office | |
42 for _, record := range records { | |
43 c, err := strconv.Atoi( record[6] ); if err != nil { | |
44 c = 0 | |
45 } | |
46 data := office{ | |
47 Id: record[0], | |
48 Sv: record[1], | |
49 Name: record[2], | |
50 Addr: record[3], | |
51 Phone: record[4], | |
52 Fax: record[5], | |
53 Capacity: c, | |
54 } | |
55 offices = append( offices, data ) | |
56 } | |
57 | |
58 bytes, err := json.Marshal( offices ); if err != nil { | |
59 log.Fatal( err ) | |
60 } | |
61 os.Stdout.Write( bytes ) | |
62 } | |
63 |