Pandas Baca JSON

Data bertebaran di internet, dalam bentuk kadang rapi seperti html atau dalam bentuk yang lebih mudah ditangani, json. Pandas menyediakan fungsi read_json yang dapat digunakan untuk membaca data dari berkas json atau data yang disediakan oleh API.

Kode Lima Detik

import pandas as pd

# Local file
universities1 = pd.read_json('world_universities_and_domains.json')

# Online file
universities2 = pd.read_json('https://raw.githubusercontent.com/Hipo/university-domains-list/master/world_universities_and_domains.json')

# API
quote = pd.read_json('https://quote-garden.herokuapp.com/api/v2/quotes/random')

Latar Belakang

JSON adalah salah satu format data yang populer terutama setelah internet memuja Single Page Application (SPA). Format data ini menyediakan (seringnya hanya) data sehingga mudah ditangani di pandas, apalagi jika dibandingkan dengan format html.


Kode

Untuk pertama impor library pandas.

import pandas as pd

Local File

Kita akan membaca daftar alamat kampus dari sini yang telah diunduh dan disimpan di komputer (local file).

universities1 = pd.read_json('world_universities_and_domains.json')

Online File

Dapat pula langsung diakses menggunakan url berkas tersebut.

universities2 = pd.read_json('https://raw.githubusercontent.com/Hipo/university-domains-list/master/world_universities_and_domains.json')

API

Komunikasi data era sekarang intensif menggunakan API karena itu pandas juga bisa mengonsumsi data dari API.

Pada kode di bawah ini kita akan mengonsumsi kutipan dari Quote Garden menggunakan kode di bawah ini.

quote = pd.read_json('https://quote-garden.herokuapp.com/api/v2/quotes/random')

Yang perlu diperhatikan adalah dokumentasi dari API, misal untuk mendapatkan dua puluh data kita perlu mengisi parameter limit.

quotes = pd.read_json('https://quote-garden.herokuapp.com/api/v2/quotes?page=1&limit=20')

Perlu sedikit kode tambahan untuk membersihkan data.

data = pd.DataFrame(quotes.quotes.values.tolist())

Referensi


Cover Image by xresch on Pixabay

Leave a Reply

Your email address will not be published.