author Ahmad Muhardian

Belajar Python: Cara Proses Data JSON dengan Python (dari File dan Web API)


JSON kini sudah menjadi format yang sering dipakai dalam pertukaran data antar aplikasi.

Biasanya, kita akan menemukannya pada REST API.

Buat kamu yang belum tahu apa itu JSON, saya sarankan untuk membaca:

Pada tutorial ini, kita akan belajar cara mengolah data JSON di Python dengan libraray json dan juga nantinya kita akan mencoba mengambil data JSON dari Server API.

Baiklah..

Mari kita mulai!

Cara Parsing JSON di Python

Parsing artinya mengurai..

Apa yang diurai?

Ya data JSON-nya.

Mengapa?

Karena data tersebut belum bisa dibaca secara langsung di Python. Harus dilakukan parsing terlebih dahulu agar bisa kita pakai di dalam Python.

Gimana caranya?

Caranya:

Kita bisa pakai modul json yang sudah disediakan oleh Ptyhon.

Mari kita coba..

Buatlah file JSON baru dengan nama dataku.json—bisa dibuat dengan notepad dan teks editor lainnya—lalu isi file JSON-nya seperti ini:

{
    "name" : "Petani Kode",
    "web" : "https://www.petanikode.com",
    "social_media": {
        "facebook" : "petanikode",
        "twitter" : "@petanikode",
        "instagram": "@petanikode"
    }
}

Pastikan format data JSON yang kamu tulis sudah benar. Lakukan validasi dengan JSONLint.

json valid

Tujuannya, agar nanti bisa dibaca di dalam program. Kalau format JSON-nya tidak valid, bisa jadi ia tidak akan bisa dibaca.

Oke..

Setelah itu, buat file baru dengan nama baca_data_json.py dan isi dengan kode berikut:

# gunakan modul json
import json

# buka file JSON
file_json = open("dataku.json")

# prsing data JSON
data = json.loads(file_json.read())

# cetak isi data JSON
print(data)

Oh iya, kedua file ini harus di simpan dalam satu folder yang sama.

file json dan script python

Mengapa?

Karena kita melakukan open("dataku.json"), yang artinya file JSON yang akan dibuka adalah file yang masih satu folder dengan file script python tersebut.

Setelah itu, coba buka terminal dan jalankan program baca_data_json.py.

Maka hasilnya:

baca json dengan python

Gampang kan?

Note: Tutorial ini menggunakan Python 3, jika kamu menggunakan Python 2 mungkin tidak akan bisa dijalankan. Upgrade versi python yang kamu gunakan. Setidaknya versi 3.6 ke atas.

Varibel data akan berisi sebuah dictionary dengan key dan value-nya akan mengikuti format dari JSON.

Nah, sekarang.. kita modifikasi lagi programnya, ubahlah print(data) menjadi seperti ini:

# cetak isi data JSON
print(f"Nama: {data['name']}")
print(f"Website: {data['web']}")
print("Sosial Media:")
print(f"- Facebook: {data['social_media']['facebook']}")
print(f"- Twitter: {data['social_media']['twitter']}")
print(f"- Instagram: {data['social_media']['instagram']}")

Sehingga kode lengkapnya akan menjadi seperti ini:

import json

# buka file JSON
file_json = open("dataku.json")

# prsing data JSON
data = json.loads(file_json.read())

# cetak isi data JSON
print(f"Nama: {data['name']}")
print(f"Website: {data['web']}")
print("Sosial Media:")
print(f"- Facebook: {data['social_media']['facebook']}")
print(f"- Twitter: {data['social_media']['twitter']}")
print(f"- Instagram: {data['social_media']['instagram']}")

Coba eksekusi lagi, dan perhatikanlah hasilnya:

output data json

Pada contoh ini.. kita menggunakan f-string (f"") untuk memformat hasil output, lalu mengambil data dari variabel data.

Sampai di sini sudah paham?

Bagus..

Sekarang mari kita coba baca JSON dari web service atau API.

Baca JSON dari Webservice dengan Python

Karena data JSON berada di server API, maka kita membutuhkan modul tambahan, yakni urllib.

Modul urllib menyediakan fungsi request() untuk melakukan HTTP Request ke Server. Ini akan kita manfaatkan untuk mengambil data JSON.

Mari kita coba..

API yang akan kita gunakan adalah API dari Github.

Alamat URL endpoint-nya:

https://api.github.com/users/ardianta

Ini adalah endpoint untuk mengakses data profil github dengan username ardianta, kamu juga bisa mengganti dengan username Github-mu sendiri.

Berikut ini hasil respon dari endpoint tersebut:

github profile api response

Mari kita buat programnya..

Buatlah file baru dengan nama read_github_api.py dan isilah dengan kode berikut:

import json
from urllib import request

# tentukan url endpoint
url = "https://api.github.com/users/ardianta"

# lakukan http request ke server
response = request.urlopen(url)

# parsing data json
data = json.loads(response.read())

# cetak hasil parsing data
print(data)

Setelah itu, coba jalankan programnya.

Maka hasilnya:

python github json

Data JSON-nya sudah kita dapatkan.. yay!

Berikutnya, kita akan ubah kode programnya agar bisa menampilkan data yang lebih rapi.

Ubahlah kode print(data) menjadi seperti ini:

import json
from urllib import request

# tentukan url endpoint
url = "https://api.github.com/users/ardianta"

# lakukan http request ke server
response = request.urlopen(url)

# parsing data json
data = json.loads(response.read())

# cetak hasil parsing data
print("== Program Baca profile Github ==")
print(f"Nama: {data['name']}")
print(f"Lokasi: {data['location']}")
print(f"Institusi: {data['company']}")
print(f"Folower: {data['followers']}")
print(f"mendaftar github pada: {data['created_at']}")

..dan coba eksekusi lagi.

Maka hasilnya:

program baca profile github

Gampang kan..

Intinya:

Langkah yang harus kamu ingat..

  1. Baca atau buka file JSON (bisa dari file dan server)
  2. Parsing
  3. Proses data (print, simpan, edit, dll)

Nah, berikutnya kita akan coba membaca data JSON yang memiliki banyak item.

Membaca JSON yang Memiliki Banyak Items

Contoh program yang kita buat tadi, hanya membaca satu item saja yakni profil github dan profil pribadi.

Lalu bagaimana caranya membaca data dari JSON yang berisi sekumpulan item?

Contohnya seperti daftar atau list artikel.

Gampang..

Dala kasus ini, kita harus menggunakan perulangan.

Mari kita coba!

Kita akan menggunakan data JSON dari API jsonplaceholder dengan endpoint URL:

https://jsonplaceholder.typicode.com/posts

Contoh hasil respon dari endpoint tersebut:

respon endpoint post

Ada sebanyak 100 item atau artikel dalam data JSON ini.

Mari kita buat program untuk membacanya.

Buatlah program baru dengan nama list_artikel.py, kemudian isi dengan kode berikut:

import json
from urllib import request

url = "https://jsonplaceholder.typicode.com/posts"

# lakukan http request
response = request.urlopen(url)

# parsing data json
data = json.loads(response.read())

# gunakan perulangan untuk menampilkan data
for i in range(len(data)):
    print(f"{i}. {data[i]['title']}")

Setalah itu, coba jalankan programnya.

Maka hasilnya:

output program list artikel

Berhasil..

Kode tersebut juga bisa dibuat lebih sederhana menjadi seperti ini:

# gunakan perulangan untuk menampilkan data
for post in data:
    print(f"- {post['title']}")

Latihan: Baca data Covid-19 dengan Python

Sebagai latihan tambahan, kita akan coba membaca data statistik Covid-19 di Indonesia.

API yang digunakan adalah API dari mathdroid:

https://indonesia-covid-19.mathdro.id/api/provinsi

Contoh hasil responnya:

response-covid-19

Mari kita buat programnya.

Buatlah file baru dengan nama covid_19_indonesia.py, kemudian isi dengan kode berikut:

import json
from urllib import request

url = "https://indonesia-covid-19.mathdro.id/api/provinsi"

# lakukan http request
response = request.urlopen(url)

# parsing data json
data = json.loads(response.read())

# gunakan perulangan untuk menampilkan data
for covid in data['data']:
    print(f"- {covid['provinsi']}:")
    print(f"  🤒Positif: {covid['kasusPosi']}")
    print(f"  🙂Sembuh: {covid['kasusSemb']}")
    print(f"  ☠ Meninggal: {covid['kasusMeni']}")

Kita menggunakan data['data'], karena semua item di JSON-nya berada pada key data .

json data key

Sekarang kita coba eksekusi, maka hasilnya:

program covid python

Mantap 👍

Apa Selanjutnya?

Kini kamu sudah tahu cara membaca dan parsing data JSON di Python.

Berikutnya silahkan latihan dengan JSON yang berbeda atau terpakan di dalam program yang sedang kamu buat.

Baca juga:

Akhir kata..

Semoga bermanfaat.

Baca Juga ini

Cara Parsing XML di Python dengan DOM API

Cara Parsing XML di Python dengan DOM API

Python memungkinkan kita melakukan parsing (penguraian) dan manipulasi terhadap file XML dengan DOM API. DOM (Document Object Model) adalah sebuah API yang menyediakan fungsi-fungsi untuk memanipulasi dokumen. Salah satu modul DOM yang dapat kita gunakan untuk parsing XML adalah MiniDOM. Pada kesempatan ini kita akan belajar cara parsing file XML dan HTML menggunakan MiniDom. Apa saja yang akan kita pelajari? Cara Parsing XML di Python Cara Membuat Node/Elemen Mari kita mulai…

Tutorial Google Maps API: Membuat Marker untuk Menandai Lokasi

Tutorial Google Maps API: Membuat Marker untuk Menandai Lokasi

Marker sering digunakan untuk menandai sebuah lokasi. Biasanya sering digunakan dalam membuat aplikasi Geolocation. Pada kesempatan ini, kita akan belajar membuat marker di Google Maps dan melakukan beberapa modifikasi. Kamu bisa menggunakan contoh kode sebelumnya untuk uji coba. Sudah siap? Mari kita mulai… googletag.cmd.push(function () { googletag.display('div-gpt-ad-multibanner1'); }); Mengenal Objek MarkerMarker merupakan sebuah objek yang bisa kita buat dengan kode berikut: var marker = new google.

Belajar Javascript: Apa itu DOM API? dan Bagaimana Cara Menggunakanya?

Belajar Javascript: Apa itu DOM API? dan Bagaimana Cara Menggunakanya?

Saat kamu memutuskan akan belajar Javascript, maka wajib hukumnya memahami tentang DOM. DOM merupakan metode yang digunakan oleh Javascript untuk...

Belajar Django #1: Pengenalan Dasar Django untuk Pemula

Belajar Django #1: Pengenalan Dasar Django untuk Pemula

Pengenalan Django, Instalasi Django, Membuat Project Django, dan Memahami struktur project Django

Membuat Program Countdown Timer (Pomodoro) dengan Python

Membuat Program Countdown Timer (Pomodoro) dengan Python

Waktu hitung mundur (countdown timer) sering kita temukan pada kehidupan sehari-hari. Biasanya kita gunakan untuk menghitung mundur sesuatu yang penting, seperti: deadline, detik pergantian tahun, timer saat memasak, pomodoro, dll. Nah, pada tutorial ini.. Kita akan belajar membuat program timer dengan Python dengan studi kasus Pomodoro Timer. Sebenarnya tidak hanya bisa dipakai untuk Pomodoro saja sih, program ini juga nanti akan bisa digunakan untuk timer yang lainnya. Oke kalau bagitu,

Mengatasi Malsalah Posisi Titik Tengah Google Maps pada Modal

Mengatasi Malsalah Posisi Titik Tengah Google Maps pada Modal

Saat membuat Google Maps pada Modal di template Admin LTE, ada masalah yang membuat saya bingung. Posisi titik tengah Google maps selalu berada di pojok kiri atas. Meskipun saya sudah set titik tengahnya pada trigger event resize, namun tetap saja posisinya berada di pojok kiri atas. masalah sebelumnya, Google Maps tidak bisa ditampilkan karena di letakkan di dalam modal. Meskipun saya sudah set titik tengahnya pada trigger event 'resize', namun tetap saja posisinya berada di pojok kiri atas.