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.
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.
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"])File Content type: dict
User skill list: ['python', 'javascript', 'sql']
String Content type: dict
Database host: localhostImplementasi 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
Pelajari cara membaca file dengan Python. Kuasai pernyataan terbuka, readline, readline, dan penanganan pengecualian file dengan aman.
Cara Menulis ke File dengan PythonPelajari cara menulis teks ke file dengan Python. Kuasai perbedaan antara mode tulis ("w") dan tambahkan ("a") dengan pengelola konteks yang aman.
Cara Membuat Kamus dengan PythonPelajari cara membuat kamus dengan Python. Memahami sintaks literal, konstruktor dict, pemahaman dict, dan inisialisasi nilai kunci.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
I/O File Python
Pelajari cara membaca dan menulis file dengan Python. Kuasai open(), read(), write(), dan manajer konteks untuk menangani operasi file dengan aman tanpa kebocoran sumber daya.
Lembar
Referensi cepat untuk membaca dan menulis file dengan Python. Kuasai mode terbuka, pengelola konteks, dan membaca baris demi baris.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.