Cara Mengurai JSON dengan Python
Diterbitkan: 2022-02-09JSON adalah format populer untuk pertukaran data. Python dikirimkan dengan modul JSON bawaan untuk mengurai dan bekerja dengan data JSON. Dan tutorial ini akan mengajarkan Anda semua tentang bekerja dengan JSON dengan Python.
Pada akhir tutorial ini, Anda akan belajar:
- dasar-dasar JSON,
- cara mengurai dan membuat string JSON dengan Python, dan
- cara membaca dari dan menulis ke file JSON dengan Python.
Ayo mulai!
Apa itu JSON?
JSON adalah singkatan dari Java S cript O bject N otation , dan ini adalah format berbasis teks untuk pertukaran data. Meskipun JSON awalnya terinspirasi oleh objek JavaScript, hampir semua bahasa pemrograman mendukung bekerja dengan JSON.
Jika Anda pernah bekerja dengan API atau membaca file konfigurasi—Anda mungkin pernah menggunakan JSON.
Anda mengirim dan menerima data dalam JSON saat mengkueri API. Dan JSON juga banyak digunakan dalam komunikasi client-server dalam aplikasi perangkat lunak. Selain itu, Anda juga dapat menggunakan JSON untuk penyimpanan data tujuan umum.
Format JSON sangat mirip dengan kamus Python. Kamus adalah struktur data bawaan yang kuat dalam Python yang menyimpan data dalam pasangan nilai kunci.
Sebelum kita melangkah lebih jauh, berikut adalah beberapa poin yang perlu diperhatikan:
- Dalam Python, objek JSON disimpan sebagai kamus.
- Array di JSON disimpan sebagai daftar Python.
- Di JSON, nilai Boolean dilambangkan sebagai
true
danfalse
. Dengan Python, ini dikonversi ke BooleansTrue
danFalse
.
Untuk detail lebih lanjut tentang tipe data yang diterjemahkan dari JSON ke Python, baca dokumen di sini.
Karena modul json
adalah bagian dari pustaka standar Python, Anda tidak perlu menginstalnya. Anda dapat mengimpor ke direktori Anda saat ini, seperti ini:
import json
Cara Memuat String JSON dengan Python
Sintaks umum untuk memuat string JSON di Python adalah:
<dict_obj> = json.loads(<json_str>)
Di Sini,
-
<dict_obj>
adalah kamus Python tempat Anda ingin memuat string JSON, -
<json_str>
adalah string JSON yang valid.
Ini memuat <json_str>
ke dalam kamus Python <dict_obj>
.
Mari kita kodekan sebuah contoh. Di sini json_str
adalah string JSON.
json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''
Dan cuplikan kode di bawah ini menunjukkan bagaimana Anda dapat memuat string JSON json_str
ke dalam kamus Python menggunakan metode loads()
. Anda dapat menggunakan fungsi built-in type()
untuk memverifikasi bahwa py_dict
adalah kamus Python.
py_dict = json.loads(json_str) type(py_dict) # Output: dict print(py_dict) # Output {'books': [{'title': 'The Wind in the Willows', 'author': 'Kenneth Grahame', 'year': '1908'}, {'title': 'To the Lighthouse', 'author': 'Virginia Woolf', 'year': '1927'}]}
Seperti yang ditunjukkan pada kode di atas, semua bidang dalam string JSON adalah pasangan nilai kunci di py_dict
.
Cara Membuat String JSON dengan Python
Misalkan Anda memiliki kamus Python. Jadi bagaimana Anda membuat string JSON darinya?
Anda dapat melakukannya menggunakan metode dumps()
dengan sintaks ini:
<json_str> = json.dumps(<dict_obj>)
Di Sini,
-
<dict_obj>
adalah kamus Python tempat Anda ingin membuat string JSON, -
<json_str>
adalah string JSON yang dihasilkan.
Jadi metode dumps()
membuang <dict_obj>
ke dalam string JSON <json_str>
.
Ke kamus Python kami yang ada py_dict
. mari tambahkan kunci baru "movies"
. Anda dapat melakukannya seperti yang ditunjukkan pada cuplikan kode berikut:
py_dict["movies"] = [{"title":"The Imitation Game","year":"2014", "lang":"en","watched":True}]
Sekarang, mari kita buang kamus yang dimodifikasi ke string JSON baru json_str2
menggunakan metode dumps()
.
json_str2 = json.dumps(py_dict) print(json_str2) # Output {"books": [{"title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908"}, {"title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927"}], "movies": [{"title": "The Imitation Game", "year": "2014", "lang": "en", "watched": true}]}
Seperti yang Anda lihat pada contoh di atas, string JSON keluaran sulit dibaca tanpa pemformatan yang benar. Anda dapat menggunakan indent
parameter opsional untuk menambahkan indentasi.
Dan Anda dapat melakukannya dengan mengatur indent
ke integer seperti 2, seperti yang ditunjukkan di bawah ini:
json_str2 = json.dumps(py_dict, indent = 2) print(json_str2) # Output { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ], "movies": [ { "title": "The Imitation Game", "year": "2014", "lang": "en", "watched": true } ] }
Amati bagaimana output telah diformat dengan lekukan, dan mudah untuk menindaklanjutinya.

Catatan : Jika Anda ingin kunci diurutkan dalam urutan abjad, Anda dapat mengatur parameter
sort_keys
keTrue
.
Seperti yang dapat Anda lihat dalam cuplikan kode di bawah ini, kunci sekarang telah diurutkan dalam urutan abjad.
json_str2 = json.dumps(py_dict, indent = 2, sort_keys=True) print(json_str2) # Output { "books": [ { "author": "Kenneth Grahame", "title": "The Wind in the Willows", "year": "1908" }, { "author": "Virginia Woolf", "title": "To the Lighthouse", "year": "1927" } ], "movies": [ { "lang": "en", "title": "The Imitation Game", "watched": true, "year": "2014" } ]
Dan kunci sekarang muncul dalam urutan abjad: "author"
, "title"
dan "year"
.
Sejauh ini, Anda telah mempelajari cara bekerja dengan string JSON dengan Python. Di bagian berikutnya, Anda akan mempelajari cara bekerja dengan file JSON.
Cara Membaca File JSON dengan Python
Untuk membaca file JSON dengan Python, gunakan sintaks berikut:
json.load(<json-file>) # where <json-file> is any valid JSON file.
Perhatikan bagaimana kita menggunakan metode
load()
dan bukan metodeloads()
.loads()
memuat string JSON, sementaraload()
memuat file JSON .
Anda harus mempertimbangkan untuk menggunakan manajer konteks saat bekerja dengan file dengan Python. Anda juga dapat mencoba membaca file sebagai berikut, tanpa menggunakan pengelola konteks:
my_file = open('students.json','r') contents = my_file.read() print(contents) file.close()
Jika Anda tidak menutup file, mungkin ada potensi pemborosan sumber daya.
Namun, saat bekerja dengan manajer konteks , file secara otomatis ditutup setelah operasi file selesai.
Dan Anda dapat menggunakan pengelola konteks untuk membaca file, seperti yang ditunjukkan di bawah ini:
with open('students.json','r') as file: data = json.load(file) print(data) # Output {'students': [{'roll_num': 'cs27', 'name': 'Anna', 'course': 'CS'}, {'roll_num': 'ep30', 'name': 'Kate', 'course': 'PHY'}]}
Saat Anda membaca dari sebuah file, tentukan mode sebagai telah dibaca —ditunjukkan oleh 'r'
pada kode di atas.
Catatan : Untuk menavigasi dengan mudah melalui direktori saat ini, harap pastikan bahwa file JSON berada di folder yang sama dengan
main.py
, seperti yang ditunjukkan pada gambar di bawah ini. Jika file JSON Anda berada di folder yang berbeda, pastikan untuk menentukan jalur ke file tersebut.

Di bagian berikutnya, Anda akan mempelajari cara menulis ke file JSON.
Cara Menulis ke File JSON dengan Python
Untuk menulis ke file JSON yang ada atau membuat file JSON baru, gunakan metode dump()
seperti yang ditunjukkan:
json.dump(<dict_obj>,<json_file>) # where <dict_obj> is a Python dictionary # and <json_file> is the JSON file
Jadi sintaks di atas membuang kamus <dict_obj>
ke dalam file JSON <json_file>
.
Di bagian sebelumnya, kami memiliki kamus py_dict
. Sekarang mari kita buang itu ke file JSON baru. Dan beri nama new_file.json
.
Dan sel kode berikut menunjukkan bagaimana Anda dapat menggunakan fungsi dump()
:
with open('new_file.json','w') as file: json.dump(py_dict,file)
Catatan : Membuka file dalam mode tulis (
w
) akan menimpa konten jika file tersebut ada. Jika file tidak ada, file dibuat.
Setelah menjalankan sel kode di atas, Anda akan melihat bahwa file JSON baru telah dibuat di direktori kerja saat ini. Dan Anda dapat melanjutkan dan memeriksa konten file JSON.

Saat menulis ke file, tujuan utamanya adalah penyimpanan data. Dan jika Anda ingin mempertahankan pemformatan, Anda juga dapat menggunakan parameter indent
dan sort_keys
.
Kesimpulan
Saatnya membuat ringkasan singkat.
Dalam tutorial ini, Anda telah belajar:
- dasar-dasar menggunakan JSON,
- cara menggunakan metode
loads()
danload()
untuk membaca string JSON dan file JSON masing-masing, - cara menggunakan metode
dumps()
dandump()
untuk membuang kamus Python masing-masing ke string JSON dan file JSON.
Saya harap Anda menemukan tutorial ini bermanfaat. Selamat belajar!
Anda juga dapat melihat JSON Tools untuk mengurai, memformat, dan memvalidasi.