Cara Membaca dan Mengurai File JSON dengan Python

Pelajari cara membaca, mengurai, dan memuat file JSON dengan Python menggunakan modul json bawaan. Kuasai mengonversi string JSON ke kamus dan sebaliknya.

Coba Solusi ini di Editor

Ikhtisar

JSON (JavaScript Object Notation) adalah format data paling populer untuk API, file konfigurasi, dan penyimpanan data. Python hadir dengan modul `json` bawaan yang membuatnya sangat mudah untuk membaca, mengurai, dan menulis data JSON. Karena objek JSON dipetakan dengan sempurna ke kamus Python, dan array JSON dipetakan ke daftar Python, bekerja dengan JSON terasa asli.

Untuk membaca JSON dari file eksternal, Anda menggunakan fungsi `json.load()`, yang mem-parsing aliran file dan menerjemahkan struktur JSON ke dalam tipe data Python. Jika data JSON sudah dimuat di memori sebagai string, Anda menggunakan fungsi `json.loads()` ('s' adalah singkatan dari string). Memilih fungsi yang benar akan mencegah kerusakan parser.

Saat bekerja dengan JSON, praktik terbaiknya adalah menangani pengkodean dan potensi kesalahan pemformatan. Menggunakan `encoding="utf-8"` dalam pernyataan `open()` melindungi skrip Anda dari kegagalan pada karakter khusus. Membungkus operasi file dalam blok `coba-kecuali` yang menangkap `json.JSONDecodeError` memastikan aplikasi Anda terdegradasi dengan baik jika format file JSON salah.

Kode & Output Eksekusi

Kode ini mendemonstrasikan penulisan contoh file JSON, membaca dan menguraikannya kembali ke kamus Python, dan menangani string JSON.

read_json.py
Coba di Editor
import json

# Let's write a mock JSON file first
sample_data = {
    "user": "developer123",
    "skills": ["python", "javascript", "sql"],
    "active": True
}
with open("data.json", "w", encoding="utf-8") as f:
    json.dump(sample_data, f, indent=4)

# 1. Reading from a JSON file (using json.load)
with open("data.json", "r", encoding="utf-8") as file:
    data_from_file = json.load(file)
    print("File Content type:", type(data_from_file).__name__)
    print("User skill list:", data_from_file["skills"])

# 2. Reading from a JSON string (using json.loads)
json_string = '{"host": "localhost", "port": 5432, "ssl": false}'
data_from_str = json.loads(json_string)
print("\nString Content type:", type(data_from_str).__name__)
print("Database host:", data_from_str["host"])
Keluaran Terminal
File Content type: dict
User skill list: ['python', 'javascript', 'sql']

String Content type: dict
Database host: localhost

Implementasi Langkah demi Langkah

  • Impor modul json bawaan di skrip Anda.
  • Buka file JSON menggunakan open("filename.json", "r", coding="utf-8") sebagai file.
  • Berikan objek file ke json.load(file) untuk mengurai konten ke dalam kamus Python.
  • Gunakan json.loads(string_data) jika Anda perlu mengurai string JSON mentah yang sudah dimuat di memori.

Pertanyaan yang Sering Diajukan

Apa perbedaan antara json.load() dan json.loads()?

json.load() menerima objek aliran seperti file (membaca dari disk), sedangkan json.loads() menerima objek string atau byte standar yang berisi konten JSON (membaca dari memori).

Bagaimana cara menangani kesalahan serialisasi JSON untuk kelas khusus?

Modul json Python tidak dapat membuat serial instance kelas khusus secara default. Anda harus menyediakan kelas encoder khusus yang memperluas json.JSONEncoder, atau mengekstrak atribut instance ke dalam kamus menggunakan metode pembantu terlebih dahulu.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

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