Parsing Python JSON: Serialisasi & Deserialisasi

Pelajari cara membaca, menulis, dan mengurai data JSON dengan Python. Kuasai json.loads, json.dumps, dan sesuaikan encoder/decoder JSON.

Coba di Editor

Ikhtisar

JSON (JavaScript Object Notation) adalah format pertukaran data ringan yang mendominasi API web modern, konfigurasi, dan payload database. Karena struktur JSON menyerupai kamus dan daftar Python, penerjemahan antar keduanya menjadi sangat lancar. Python dilengkapi dengan modul `json` bawaan, sehingga memudahkan untuk mengurai string JSON menjadi objek Python dan mengonversi objek Python kembali menjadi string JSON.

Proses menerjemahkan objek Python (seperti kamus) ke dalam string JSON mentah disebut Serialisasi atau pengkodean. Ini ditangani oleh `json.dumps()` (untuk string) dan `json.dump()` (untuk menulis langsung ke file). Anda dapat mengontrol parameter pemformatan seperti `indent` untuk mempercantik JSON, atau `sort_keys` untuk menjaga agar atribut tetap diurutkan berdasarkan abjad. Sebaliknya, penguraian string JSON ke dalam kamus Python disebut Deserialisasi, yang dijalankan melalui `json.loads()` dan `json.load()`.

Meskipun tipe Python standar seperti string, angka, daftar, dan dikt diserialkan ke JSON secara otomatis, objek khusus (seperti kelas atau objek datetime) tidak. Mencoba menyandikan objek khusus secara langsung akan memunculkan `TypeError`. Untuk mengatasinya, pengembang harus membuat kelas encoder khusus yang mewarisi `json.JSONEncoder` dan mengganti metode `.default()` untuk membuat serial kelas ke dalam kamus yang dapat dibaca. Menguasai manipulasi JSON adalah kunci untuk berkomunikasi dengan layanan web eksternal.

Kode & Output Eksekusi

Mengonversi kamus menjadi string JSON dan menguraikannya kembali menggunakan perpustakaan json bawaan.

json_demo.py
Coba di Editor
import json

# Python Dictionary representing a user profile
user_profile = {
    "name": "Alex",
    "is_premium": True,
    "skills": ["Python", "Docker"],
    "age": 28
}

# Serialize dictionary to JSON string
json_string = json.dumps(user_profile, indent=2)
print("--- JSON String ---")
print(json_string)

# Deserialize JSON string back to dictionary
parsed_dict = json.loads(json_string)
print("\n--- Parsed Python Dictionary ---")
print(f"Name: {parsed_dict['name']}")
print(f"First Skill: {parsed_dict['skills'][0]}")
Keluaran Terminal
--- JSON String ---
{
  "name": "Alex",
  "is_premium": true,
  "skills": [
    "Python",
    "Docker"
  ],
  "age": 28
}

--- Parsed Python Dictionary ---
Name: Alex
First Skill: Python

Implementasi Langkah demi Langkah

  • Mengirim payload dan membaca data dari REST API
  • Menyimpan preferensi konfigurasi di dalam file settings.json
  • Melewati muatan terstruktur antar layanan mikro

Pertanyaan yang Sering Diajukan

Apa perbedaan antara json.dump dan json.dumps?

json.dump (tanpa 's') menulis data JSON langsung ke aliran file. json.dumps (dengan 's') membuat serial data menjadi variabel string Python.

Bagaimana Anda menangani kesalahan dekode JSON?

Bungkus kode penguraian Anda dalam blok coba/kecuali yang menangkap 'json.JSONDecodeError' untuk menangani string JSON yang formatnya salah dengan baik.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.