changeset 8:bf5d764cd80d

New: csv2json.go
author pyon@macmini
date Sun, 13 Nov 2016 14:44:16 +0900
parents f4ba4cfb09fd
children 54a75ff1c288
files src/csv2json/csv2json.go
diffstat 1 files changed, 63 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/csv2json/csv2json.go	Sun Nov 13 14:44:16 2016 +0900
@@ -0,0 +1,63 @@
+/****************************************************************************/
+/* csv2json.go                                                              */
+/*                                    Last Change: 2016-11-13 Sun 13:49:23. */
+/*                                    By T.Mutoh                            */
+/****************************************************************************/
+package main
+
+import (
+    "encoding/csv"
+    "encoding/json"
+    "flag"
+//    "fmt"
+    "log"
+    "os"
+    "strconv"
+)
+
+type office struct {
+    Id	     string
+    Sv       string
+    Name	 string
+    Addr	 string
+    Phone	 string
+    Fax	     string
+    Capacity int
+}
+
+func main() {
+    flag.Parse()
+
+    f, err := os.Open( flag.Arg(0) ); if err != nil {
+        log.Fatal( err )
+    }
+
+    r := csv.NewReader( f )
+    r.Comment = '#'
+    records, err := r.ReadAll(); if err != nil {
+        log.Fatal( err )
+    }
+
+    var offices []office
+    for _, record := range records {
+        c, err := strconv.Atoi( record[6] ); if err != nil {
+            c = 0
+        }
+        data := office{
+               Id:       record[0],
+               Sv:       record[1],
+               Name:     record[2],
+               Addr:     record[3],
+               Phone:    record[4],
+               Fax:      record[5],
+               Capacity: c,
+        }
+        offices = append( offices, data )
+    }
+
+    bytes, err := json.Marshal( offices ); if err != nil {
+        log.Fatal( err )
+    }
+    os.Stdout.Write( bytes )
+}
+