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 ( 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 bernama new-provinces.json ).

Setelah kita menjalankan perintah tersebut, kita akan mendapatkan hasil data baru bernama new-provinces.json yang memiliki isi data sebagai berikut :

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.

One Comment

Add a Comment

Your email address will not be published. Required fields are marked *