JSON atau JavaScript Object Notation adalah format pertukaran data yang ringan. Sangat mudah untuk membaca, menulis, menganalisis, dan bahkan menghasilkan. JSON umumnya digunakan dalam aplikasi web yang digunakan untuk mentransfer data antara browser web dan server.
Secara umum, JSON adalah format berbasis teks untuk menyimpan dan bertukar data. Ini sering digunakan dalam pengembangan web untuk mentransfer data antara browser web dan server. JSON juga digunakan untuk mengirimkan data melalui API atau mengirim data ke pengguna. Oleh karena itu, sering terjadi pada web scraping.
Daftar Isi
Memahami JSON dan strukturnya
Data JSON adalah struktur terurut yang terdiri dari pasangan nilai kunci. Kunci harus berupa string. Nilai dapat berupa tipe data apa pun termasuk string, angka, array, dan objek.
JSON adalah format pertukaran data ringan yang mudah dibaca dan ditulis oleh manusia dan mesin. Ini digunakan di REST API, AJAX dan WebSockets. Struktur JSON yang paling sederhana adalah pasangan nilai kunci tunggal, seperti:
{
"title": "Example"
}
Pendekatan ini memungkinkan JSON menyusun data dengan mudah, yang membantunya menjadi format yang populer. Berikut beberapa manfaat menggunakan JSON:
- Data JSON dapat dibaca manusia, sehingga mudah untuk dipahami dan di-debug.
- JSON adalah format sederhana yang dapat diuraikan dan dihasilkan oleh mesin.
- Struktur data JSON terlihat dari data itu sendiri sehingga mudah dipahami.
JSON mendukung berbagai tipe data termasuk string, angka, array, dan objek. Misalnya, objek JSON berikut memiliki tiga properti:
{
"title": "Example",
"year": 2023,
"article": {
"title": "JSON parsing",
"language": "Python"
}
}
Properti item bersarang di objek utama pada contoh di atas. Hal ini memungkinkan kita untuk menyimpan data yang lebih kompleks dalam objek JSON.
Dasar-dasar penguraian Python JSON
Penguraian JSON, juga disebut deserialisasi, mengubah string atau file JSON menjadi struktur data yang dapat dimanipulasi oleh suatu program. Pada saat yang sama, serialisasi JSON adalah proses mengubah struktur data menjadi string atau file JSON. Dengan kata lain, penguraian JSON melibatkan pembacaan data JSON, sedangkan serialisasi JSON melibatkan penulisan data JSON.
Meskipun tipe data JSON dan Python mungkin memiliki kesamaan, penting untuk dipahami bahwa mungkin ada perbedaan. Berikut tabel yang menunjukkan korespondensi antara tipe data di JSON dan Python:
Tipe data JSON |
Tipe data piton |
---|---|
nomor |
int, mengapung |
Rangkaian |
str |
Nilai Boolean |
bodoh |
BENAR |
BENAR |
SALAH |
SALAH |
obyek |
dikte |
Himpunan |
daftar |
objek (kosong) |
dikt() atau {} |
susunan (kosong) |
daftar() atau () |
Nol |
Tidak ada |
JSON Tidak Terdefinisi |
Tidak setara secara langsung |
JSON NaN |
mengapung('nan') |
set |
dihentikan (konversi diperlukan) |
Array byte dan byte |
Byte, array byte |
Pencacahan |
enum.Enum |
Tipe data JSON dan Python umumnya kompatibel, namun mungkin ada beberapa perbedaan dan pertimbangan saat bekerja dengannya, terutama untuk struktur data dan objek khusus yang lebih kompleks.
Anda dapat menggunakan modul JSON bawaan (JSON Encoder dan Decoder) untuk membaca data JSON dengan Python. Modul JSON menyediakan dua metode untuk mengubah data JSON menjadi objek Python:
- Loads() mengubah string JSON menjadi objek Python.
- Load() mengubah file JSON menjadi objek Python.
Objek yang dikembalikan oleh metode ini dapat berupa daftar atau kamus.
Mengurai string JSON dengan Python
Mari kita lihat contoh penggunaan perpustakaan JSON untuk mengurai string. Untuk melakukan ini, kami membuat file baru dalam format .py dan mengimpor perpustakaan:
import json
Selanjutnya, kita membuat variabel untuk menyimpan string JSON sebagai teks:
json_string = '{"name": "John Doe", "age": 30}'
Kami kemudian menggunakan perpustakaan JSON untuk mengurai string menjadi objek JSON:
json_object = json.loads(json_string)
Sekarang kita dapat bekerja dengan data ini seperti kamus biasa. Berikut ini contoh pengaksesan data:
# Get the name
name = json_object("name")
# Get the age
age = json_object("age")
Untuk mengubah data dalam kamus, Anda juga dapat mengakses data menggunakan tombol.
Parsing file JSON
Sekarang mari kita lihat cara mengurai file JSON. Untuk melakukan ini, kita akan membuat file bernama “data.json” dan menambahkan kode JSON dari contoh sebelumnya. Kami kemudian memperbarui contoh sebelumnya untuk membaca data dari file:
with open("data.json", "r") as f:
json_object = json.load(f)
Hasilnya, kami meneruskan data yang sama ke dalam variabel json_object.
Serialisasi JSON dengan Python
Seperti disebutkan sebelumnya, serialisasi melibatkan konversi objek JSON menjadi string atau file. Untuk melakukan ini kita dapat menggunakan perintah berikut:
- dump() dapat mengonversi objek Python menjadi file.
- dumps() dapat mengonversi objek Python menjadi string.
Mari kita lihat masing-masing perintah ini dengan sebuah contoh.
Mengonversi objek Python menjadi string JSON
Mari kita gunakan isi variabel json_object dari contoh sebelumnya sebagai objek JSON. Untuk mengubah data menjadi string, gunakan perintah berikut:
json_string = json.dumps(json_object)
String yang dihasilkan identik dengan yang kami berikan pada contoh pertama.
Tulis objek Python ke file
Untuk membuat file dan menyimpan objek JSON, kami menggunakan perintah dump():
with open("data.json", "w") as f:
json.dump(json_object, f)
Ini akan menimpa isi file data.json dengan data baru dari objek json_object.
Ubah data JSON
Saat bekerja dengan data JSON dengan Python, sering kali konten objek JSON perlu diubah. Bagian ini membahas berbagai cara untuk menambah, memperbarui, dan menghapus data dalam objek JSON.
Tambahkan data ke objek JSON
Data baru hanya dapat ditambahkan ke objek JSON melalui pasangan nilai kunci. Untuk melakukan ini, Anda perlu mengakses objek dan menetapkan nilai baru:
json_object("city") = "New York"
Itu dibuat ketika kunci tidak ada di objek.
Perbarui data di objek JSON
Memperbarui data sangat mirip dengan menetapkan data baru. Satu-satunya perbedaan adalah Anda menggunakan kunci yang sudah ada di struktur objek JSON:
json_object("name") = "Jane Doe"
Ini akan menggantikan nilai kunci nama dari “John Doe” menjadi “Jane Doe”.
Hapus data dari objek JSON
Menghapus data dari objek JSON tidak cukup untuk menggantinya dengan nilai kosong. Sebagai gantinya, Anda perlu menghapus pasangan nilai kunci tertentu. Pustaka JSON mendukung kata kunci del untuk menghapus pasangan nilai kunci:
del json_object("city")
Berhati-hatilah saat menggunakan fitur ini karena data yang terhapus tidak dapat dipulihkan.
Teknik penguraian JSON tingkat lanjut
Dalam skenario yang lebih kompleks, Anda mungkin menghadapi persyaratan penguraian JSON tingkat lanjut. Bagian ini melampaui dasar-dasarnya untuk membantu Anda menangani struktur data kompleks dan situasi unik secara efektif.
Pencetakan Cantik Python untuk JSON
Meskipun data JSON mudah diproses, namun bisa jadi sulit untuk dibaca. Misalnya, mencetak seluruh struktur objek JSON yang kompleks dalam satu baris bisa jadi sulit untuk dikerjakan.
Untuk mengatasi masalah ini, konsep “Pretty JSON” dikembangkan. Pretty JSON adalah cara memformat JSON dalam format yang lebih mudah dibaca dan estetis. Hal ini sangat berguna ketika bekerja dengan data JSON yang besar atau bertumpuk.
Python menyediakan metode json.dumps() dengan parameter indentasi yang memungkinkan Anda menentukan tingkat indentasi untuk struktur bersarang. Fitur ini secara signifikan meningkatkan keterbacaan keluaran JSON.
pretty_json = json.dumps(json_object, indent=4)
Ini akan mencetak JSON yang bagus dengan lekukan 4 spasi.
Bekerja dengan data JSON dari sumber eksternal
Aplikasi sering kali mengambil data JSON dari sumber eksternal seperti API web atau database. Pustaka Permintaan membuat permintaan dengan Python dan mendukung respons JSON.
Mari kita minta situs web httpbin.org, yang mengembalikan respons JSON dengan alamat IP asal permintaan dibuat:
import requests
response = requests.get("https://httpbin.org/ip")
Sekarang Anda dapat mengurai data JSON dari respons:
json_data = response.json()
Hasilnya, Anda akan menerima objek JSON dan Anda dapat dengan mudah mengakses isinya. Misalnya, untuk mendapatkan alamat IP, Anda perlu mendapatkan nilai kunci json_data(“origin”).
Berurusan dengan kunci duplikat
Meskipun spesifikasi JSON tidak mengizinkan kunci duplikat dalam suatu objek, data sebenarnya tidak selalu mengikuti aturan ini. Saat menangani data JSON yang berisi kunci duplikat, penting untuk mengetahui cara menanganinya.
Secara default, mesin JSON Python tidak menangani kunci duplikat dengan benar dan mungkin memberikan pengecualian. Namun, Anda dapat menerapkan solusi khusus untuk mengatasi masalah ini. Untuk menghindari kesalahan, Anda dapat menggunakan opsi “ketat”, misalnya:
Json_data = json.loads(json_string, strict=False)
Menyetel parameter ketat ke False saat menggunakan json.loads() memungkinkan pengurai JSON untuk terus menguraikan meskipun menemukan kunci duplikat. Kamus Python yang dihasilkan berisi kemunculan terakhir setiap pasangan nilai kunci dalam data JSON.
Konversi JSON ke CSV dengan Python
CSV (Comma Separated Values) adalah salah satu format file paling populer untuk menyimpan data tabular dan didukung oleh sebagian besar sistem operasi. Tidak seperti XSLX, file CSV menyimpan data tabular sebagai teks biasa, dipisahkan dengan koma.
Untuk menyimpan objek JSON dengan cepat ke file CSV dengan Python, Anda dapat menggunakan pustaka CSV atau Pandas. Mari kita lihat kedua contoh tersebut. Pertama instal perpustakaan CSV dan Pandas:
pip install csv
pip install pandas
Sekarang kita mengimpor perpustakaan CSV ke dalam skrip:
import csv
Untuk menulis data ke file, kita perlu membuka file dan memasukkan data baris demi baris:
with open('data.csv', 'w', newline="") as csvfile:
Kemudian atur header dan buat objek perpustakaan CSV untuk menulis data:
fieldnames = ('title', 'year', 'title', 'language')
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
Dan ambil data ini baris demi baris:
writer.writerow({
'title': json_object('title'),
'year': json_object('year'),
'title': json_object('article')('title'),
'language': json_object('article')('language')
})
Hasilnya Anda akan mendapatkan tabel:
Jika Anda ingin mempermudah proses pencatatan, Anda dapat menggunakan bingkai data perpustakaan Pandas. Impor perpustakaan ke dalam skrip:
import pandas as pd
Kemudian buat bingkai data dari objek JSON:
df = pd.DataFrame(json_data)
Dan simpan datanya dalam format CSV:
df.to_csv("data.csv", index=False)
Jika Anda ingin menyimpan data ke file XLSX, Anda dapat menggunakan metode to_excel DataFrame. Tentukan nama file yang diinginkan dan atur index=False untuk mengecualikan kolom indeks default:
df.to_excel("data.xlsx", index=False)
Kode ini membuat file Excel bawaan dari objek JSON Anda yang nama kolomnya sesuai dengan nama kunci dalam data JSON Anda. Ini adalah cara mudah untuk mengekspor data terstruktur ke Excel untuk dianalisis atau dibagikan lebih lanjut.
Diploma
Tutorial ini mencakup berbagai aspek bekerja dengan data JSON dengan Python. JSON atau Notasi Objek JavaScript adalah format yang ada di mana-mana untuk bertukar dan menyimpan data. Memahami struktur, penguraian, dan serialisasi JSON sangat penting bagi pengembang web, ilmuwan data, dan siapa pun yang bekerja dengan data dengan Python.
Kami telah membahas dasar-dasar JSON, termasuk penguraian string dan file JSON. Selain itu, kami membahas metode untuk mengubah data JSON, termasuk menambahkan, memperbarui, dan menghapus pasangan nilai kunci. Kami juga membahas metode penguraian JSON tingkat lanjut seperti pencetakan cantik agar mudah dibaca, bekerja dengan data dari sumber eksternal seperti API web, dan menangani kunci duplikat.
Menguasai keterampilan ini akan mempersiapkan Anda untuk bekerja dengan data JSON dengan Python, baik membangun aplikasi web, menganalisis data, atau bekerja dengan data dari berbagai sumber.