Mengkonversi Data CSV Menjadi Json Array
|Pada postingan sebelumya saya membahas tentang bagaimana cara untuk Mengkonversi Json Array Menjadi Data CSV yang akan memudahkan pekerjaan. Kali ini adalah kebalikannya, yakni Mengkonversi Data CSV Menjadi Json Array dengan cepat.
Pelu diketahui, untuk laptop yang saya gunakan adalah Macbook dengan opetraing system MacOs Sonoma. Jadi memang tulisan saya ini tidak secara global untuk berbagai macam operating system seperti WIndows maupun Linux. Untuk Linus mungkin bisa karean ada kesamaan dengan MacOs.
Kita asumsikan saat ini kita sudah memiliki file excell dengan data datanya, sebagai contoh dibawah ini adalah data province indonesia dalam bentuk csv. Dapat kita lihat data tersebut memiliki header id,name,alt_name,latitude,longitude diikuti dengan beberapa data didalamnya.
Intallasi
Kita perlu melakukan installasi tools yang bernama csvkit, dengan perintah berikut :
pip install csvkit
Setelah menginstal csvkit
, gunakan perintah berikut untuk mengonversi CSV ke JSON.
csvcut -c id,name,alt_name,latitude,longitude output-provinces.csv | csvjson > new-provinces.json
csvcut -c id,name,alt_name,latitude,longitude output-provinces.csv
( Memilih kolom yang diinginkan dari CSV ).|
( Memasukkan hasil pemotongan ke dalam pemisah / separator ).csvjson
( Mengonversi data dari pipa menjadi format JSON ).> new-provinces.json
( Mengarahkan output ke file baru bernamanew-provinces.json
).
Setelah kita menjalankan perintah tersebut, kita akan mendapatkan hasil data baru bernama new-provinces.json
yang memiliki isi data sebagai berikut :
[
{
"id": "11",
"name": "ACEH",
"alt_name": "ACEH",
"latitude": 4.36855,
"longitude": 97.0253
},
{
"id": "12",
"name": "SUMATERA UTARA",
"alt_name": "SUMATERA UTARA",
"latitude": 2.19235,
"longitude": 99.38122
},
{
"id": "13",
"name": "SUMATERA BARAT",
"alt_name": "SUMATERA BARAT",
"latitude": -1.34225,
"longitude": 100.0761
},
{
"id": "14",
"name": "RIAU",
"alt_name": "RIAU",
"latitude": 0.50041,
"longitude": 101.54758
},
{
"id": "15",
"name": "JAMBI",
"alt_name": "JAMBI",
"latitude": -1.61157,
"longitude": 102.7797
},
{
"id": "16",
"name": "SUMATERA SELATAN",
"alt_name": "SUMATERA SELATAN",
"latitude": -3.12668,
"longitude": 104.09306
},
{
"id": "17",
"name": "BENGKULU",
"alt_name": "BENGKULU",
"latitude": -3.51868,
"longitude": 102.53598
},
{
"id": "18",
"name": "LAMPUNG",
"alt_name": "LAMPUNG",
"latitude": -4.8555,
"longitude": 105.0273
},
{
"id": "19",
"name": "KEPULAUAN BANGKA BELITUNG",
"alt_name": "KEPULAUAN BANGKA BELITUNG",
"latitude": -2.75775,
"longitude": 107.58394
},
{
"id": "21",
"name": "KEPULAUAN RIAU",
"alt_name": "KEPULAUAN RIAU",
"latitude": -0.15478,
"longitude": 104.58037
},
{
"id": "31",
"name": "DKI JAKARTA",
"alt_name": "DKI JAKARTA",
"latitude": 6.1745,
"longitude": 106.8227
},
{
"id": "32",
"name": "JAWA BARAT",
"alt_name": "JAWA BARAT",
"latitude": -6.88917,
"longitude": 107.64047
},
{
"id": "33",
"name": "JAWA TENGAH",
"alt_name": "JAWA TENGAH",
"latitude": -7.30324,
"longitude": 110.00441
},
{
"id": "34",
"name": "DI YOGYAKARTA",
"alt_name": "DI YOGYAKARTA",
"latitude": 7.7956,
"longitude": 110.3695
},
{
"id": "35",
"name": "JAWA TIMUR",
"alt_name": "JAWA TIMUR",
"latitude": -6.96851,
"longitude": 113.98005
},
{
"id": "36",
"name": "BANTEN",
"alt_name": "BANTEN",
"latitude": -6.44538,
"longitude": 106.13756
},
{
"id": "51",
"name": "BALI",
"alt_name": "BALI",
"latitude": -8.23566,
"longitude": 115.12239
},
{
"id": "52",
"name": "NUSA TENGGARA BARAT",
"alt_name": "NUSA TENGGARA BARAT",
"latitude": -8.12179,
"longitude": 117.63696
},
{
"id": "53",
"name": "NUSA TENGGARA TIMUR",
"alt_name": "NUSA TENGGARA TIMUR",
"latitude": -8.56568,
"longitude": 120.69786
},
{
"id": "61",
"name": "KALIMANTAN BARAT",
"alt_name": "KALIMANTAN BARAT",
"latitude": -0.13224,
"longitude": 111.09689
},
{
"id": "62",
"name": "KALIMANTAN TENGAH",
"alt_name": "KALIMANTAN TENGAH",
"latitude": -1.49958,
"longitude": 113.29033
},
{
"id": "63",
"name": "KALIMANTAN SELATAN",
"alt_name": "KALIMANTAN SELATAN",
"latitude": -2.94348,
"longitude": 115.37565
},
{
"id": "64",
"name": "KALIMANTAN TIMUR",
"alt_name": "KALIMANTAN TIMUR",
"latitude": 0.78844,
"longitude": 116.242
},
{
"id": "65",
"name": "KALIMANTAN UTARA",
"alt_name": "KALIMANTAN UTARA",
"latitude": 2.72594,
"longitude": 116.911
},
{
"id": "71",
"name": "SULAWESI UTARA",
"alt_name": "SULAWESI UTARA",
"latitude": 0.65557,
"longitude": 124.09015
},
{
"id": "72",
"name": "SULAWESI TENGAH",
"alt_name": "SULAWESI TENGAH",
"latitude": -1.69378,
"longitude": 120.80886
},
{
"id": "73",
"name": "SULAWESI SELATAN",
"alt_name": "SULAWESI SELATAN",
"latitude": -3.64467,
"longitude": 119.94719
},
{
"id": "74",
"name": "SULAWESI TENGGARA",
"alt_name": "SULAWESI TENGGARA",
"latitude": -3.54912,
"longitude": 121.72796
},
{
"id": "75",
"name": "GORONTALO",
"alt_name": "GORONTALO",
"latitude": 0.71862,
"longitude": 122.45559
},
{
"id": "76",
"name": "SULAWESI BARAT",
"alt_name": "SULAWESI BARAT",
"latitude": -2.49745,
"longitude": 119.3919
},
{
"id": "81",
"name": "MALUKU",
"alt_name": "MALUKU",
"latitude": -3.11884,
"longitude": 129.42078
},
{
"id": "82",
"name": "MALUKU UTARA",
"alt_name": "MALUKU UTARA",
"latitude": 0.63012,
"longitude": 127.97202
},
{
"id": "91",
"name": "PAPUA BARAT",
"alt_name": "PAPUA BARAT",
"latitude": -1.38424,
"longitude": 132.90253
},
{
"id": "94",
"name": "PAPUA",
"alt_name": "PAPUA",
"latitude": -3.98857,
"longitude": 138.34853
},
]
Selain dengan cara tersebut, ada pula cari lain yang tidak perlu sebuah tools untuk diinstall terlebih dahulu. Berikut adalah caranya dengan mengetikkan perintah sederhana seperti ini :
awk 'BEGIN { FS = ","; print "[" } NR>1 { printf " {\n \"id\": \%s\,\n \"name\": \%s\,\n \"alt_name\": \%s\,\n \"latitude\": %s,\n \"longitude\": %s\n },\n", $1, $2, $3, $4, $5 } END { print "]"}' output-provinces.csv > new-provinces.json
Semoga tulisan ini cukup membantu, jangan lupa komen dan sering berkunjung ya.