반응형
Json을 csv로 변환하는 방법은 다음의 링크를 참고하면 된다.
https://zerostarting.tistory.com/40
Golang JSON을 CSV로 변환
Go에서 Json을 CSV로 변경하기 위해서는 encoding/csv와 encodeing/json 패캐지를 사용한다. package main import ( "encoding/csv" "encoding/json" "fmt" "log" "os" ) func main() { // 예제 데이터 jsonData := `[{"name":"Uhm", "age":19, "ci
zerostarting.tistory.com
다음의 예제는 csv 파일이 이미 존재한다는 가정하에 실행한다.
data.csv
name,age,city
Uhm,19,Soeul
Jun,23,Tokyo
Sik,27,Los Angeles
main.go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"log"
"os"
)
func main() {
// csv 파일 열기
file, err := os.Open("data.csv")
if err != nil {
log.Fatal(err)
}
defer file.Close()
// csv 파일 읽기
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
log.Fatal(err)
}
// data를 저장할 맵의 슬라이스 생성
var data []map[string]interface{}
// for 루프를 돌며 각 행을 맵 형태로 변환
for i, record := range records {
// Skip the header row
if i == 0 {
continue
}
// 각 행을 맵 형태로 변환
row := make(map[string]interface{})
// 루프를 돌며 각 열을 맵에 추가
for j, value := range record {
row[records[0][j]] = value
}
// 맵을 슬라이스에 추가
data = append(data, row)
}
// 데이터를 JSON 형태로 변환
jsonData, err := json.Marshal(data)
if err != nil {
log.Fatal(err)
}
// JSON 데이터 출력
fmt.Println(string(jsonData))
}
반응형
'Golang' 카테고리의 다른 글
Golang UUID 생성 (0) | 2023.03.27 |
---|---|
Golang 임시 파일 생성(os.CreateTemp) (0) | 2023.03.27 |
Golang JSON을 CSV로 변환 (0) | 2023.03.15 |
Golang 디렉토리 생성(os.Mkdir, os.MkdirAll) (0) | 2023.03.15 |
Golang sync.WaitGroup (0) | 2023.03.06 |
댓글