Skip to content

Commit 8d79657

Browse files
authored
Fixed csv output (#106) (#107)
csv output processed by Writer from encoder/csv
1 parent 0d9a498 commit 8d79657

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

cmd/output.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package cmd
1919

2020
import (
2121
"encoding/json"
22+
"encoding/csv"
2223
"fmt"
2324
"os"
2425
"reflect"
@@ -168,6 +169,7 @@ func printColumn(response map[string]interface{}, filter []string) {
168169

169170
func printCsv(response map[string]interface{}, filter []string) {
170171
format := "csv"
172+
enc := csv.NewWriter(os.Stdout)
171173
for _, v := range response {
172174
valueType := reflect.TypeOf(v)
173175
if valueType.Kind() == reflect.Slice || valueType.Kind() == reflect.Map {
@@ -191,16 +193,17 @@ func printCsv(response map[string]interface{}, filter []string) {
191193
}
192194
sort.Strings(header)
193195
}
194-
fmt.Println(strings.Join(header, ","))
196+
enc.Write(header)
195197
}
196198
var values []string
197199
for _, key := range header {
198200
values = append(values, jsonify(row[key], format))
199201
}
200-
fmt.Println(strings.Join(values, ","))
202+
enc.Write(values)
201203
}
202204
}
203205
}
206+
enc.Flush()
204207
}
205208

206209
func filterResponse(response map[string]interface{}, filter []string, outputType string) map[string]interface{} {

0 commit comments

Comments
 (0)