Fevzi Ömür Tekin
Posted on February 25, 2019
Files with a CSV extension are files that are written and saved in a specific order by separating the data with commas for database users. This type of file is needed when you want to transfer data in Excel. I will develop a program with the Go programming language, which can be converted and saved to.
Used CSV Files
## Used CSV Files
plaka,bolge,il,ilce
1,AKDENİZ,ADANA,ALADAĞ
1,AKDENİZ,ADANA,CEYHAN
1,AKDENİZ,ADANA,ÇUKUROVA
1,AKDENİZ,ADANA,FEKE
1,AKDENİZ,ADANA,İMAMOĞLU
......
......
......
3,EGE,AFYONKARAHİSAR,BAŞMAKÇI
3,EGE,AFYONKARAHİSAR,BAYAT
3,EGE,AFYONKARAHİSAR,BOLVADİN
3,EGE,AFYONKARAHİSAR,ÇAY
3,EGE,AFYONKARAHİSAR,ÇOBANLAR
3,EGE,AFYONKARAHİSAR,DAZKIRI
3,EGE,AFYONKARAHİSAR,DİNAR
3,EGE,AFYONKARAHİSAR,EMİRDAĞ
3,EGE,AFYONKARAHİSAR,EVCİLER
3,EGE,AFYONKARAHİSAR,HOCALAR
3,EGE,AFYONKARAHİSAR,İHSANİYE
3,EGE,AFYONKARAHİSAR,İSCEHİSAR
.....
.....
.....
.....
14,KARADENİZ,BOLU,DÖRTDİVAN
14,KARADENİZ,BOLU,GEREDE
14,KARADENİZ,BOLU,GÖYNÜK
14,KARADENİZ,BOLU,KIBRISCIK
14,KARADENİZ,BOLU,MENGEN
14,KARADENİZ,BOLU,MUDURNU
.....
.....
.....
.....
16,MARMARA,BURSA,GÜRSU
16,MARMARA,BURSA,HARMANCIK
16,MARMARA,BURSA,İNEGÖL
16,MARMARA,BURSA,İZNİK
16,MARMARA,BURSA,KARACABEY
16,MARMARA,BURSA,KELES
....
....
....
....
31,AKDENİZ,HATAY,DEFNE
31,AKDENİZ,HATAY,ARSUZ
31,AKDENİZ,HATAY,PAYAS
45,EGE,MANİSA,ŞEHZADELER
45,EGE,MANİSA,YUNUSEMRE
46,AKDENİZ,KAHRAMANMARAŞ,DULKADİROĞLU
46,AKDENİZ,KAHRAMANMARAŞ,ONİKİŞUBAT
47,GÜNEYDOĞU ANADOLU,MARDİN,ARTUKLU
.....
.....
.....
.....
63,GÜNEYDOĞU ANADOLU,ŞANLURFA,HALİLİYE
63,GÜNEYDOĞU ANADOLU,ŞANLIURFA,KARAKÖPRÜ
65,DOĞU ANADOLU,VAN,TUŞBA
65,DOĞU ANADOLU,VAN,İPEKYOLU
67,KARADENİZ,ZONGULDAK,KİLİMLİ
Used Libraries
import (
"encoding/csv"
"encoding/json"
"os"
"strconv"
)
Note: encoding/csv and encoding/json, csv to json converting Libraries.
Steps to Program
-
We are opening our .csv file first.
src, err := os.Open("illerilceler.csv") if err != nil { panic(err) } defer src.Close()
The .json file was created.
dst, err := os.Create("il-ilce.json")
if err != nil {
panic(err)
}
defer dst.Close()
- Then, we open the .csv file that we opened, and we save it to the .json file that we created
records := make([]Record, 0, len(rows)) // We are opening up a number of rows.
for _, row := range rows {
plaka, _ := strconv.ParseInt(row[0], 0, 64) // parsing.
bolge := row[1]
il := row[2]
ilce := row[3]
/*read the data in the first row and add it to the records recorder.*/
records = append(records, Record{
Plaka: plaka,
Bolge: bolge,
Il: il,
Ilce: ilce,
})
}
/*We're moving the recorder to json.*/
err = json.NewEncoder(dst).Encode(records)
if err != nil {
panic(err)
}
All Codes
package main
import (
"encoding/csv"
"encoding/json"
"os"
"strconv"
)
type Record struct {
Plaka int64
Bolge string
Il string
Ilce string
// High, Low, Close
}
func main() {
src, err := os.Open("illerilceler.csv")
if err != nil {
panic(err)
}
defer src.Close()
dst, err := os.Create("il-ilce.json")
if err != nil {
panic(err)
}
defer dst.Close()
rows, err := csv.NewReader(src).ReadAll()
if err != nil {
panic(err)
}
records := make([]Record, 0, len(rows))
for _, row := range rows {
plaka, _ := strconv.ParseInt(row[0], 0, 64) // parseliyoruz.
bolge := row[1]
il := row[2]
ilce := row[3]
records = append(records, Record{
Plaka: plaka,
Bolge: bolge,
Il: il,
Ilce: ilce,
})
}
err = json.NewEncoder(dst).Encode(records)
if err != nil {
panic(err)
}
}
Note : The codes of the project can be found at this address.
💖 💪 🙅 🚩
Fevzi Ömür Tekin
Posted on February 25, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.