JSON 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 di Python
Di akhir tutorial ini, Anda akan belajar
- dasar-dasar JSON,
- cara mengurai dan membuat string JSON dengan Python, dan
- cara membaca dan menulis ke file JSON dengan Python
Ayo mulai. ⏳
Apa itu JSON?
JSON singkatan dari JavaScript Object Notation, dan merupakan 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 akan menemukan JSON
📑 Anda mengirim dan menerima data dalam JSON saat meminta 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 di Python yang menyimpan data dalam pasangan nilai kunci
Sebelum melangkah lebih jauh, berikut adalah beberapa poin yang perlu diperhatikan
- Di Python, objek JSON disimpan sebagai kamus
- Array di JSON disimpan sebagai daftar Python
- Di JSON, nilai Boolean dilambangkan sebagai = json.loads()4 dan = json.loads()5. Dalam Python, ini dikonversi ke Boolean = json.loads()6 dan = json.loads()7
Untuk detail lebih lanjut tentang tipe data yang diterjemahkan dari JSON ke Python, baca dokumennya di sini
Karena modul = json.loads()8 adalah bagian dari pustaka standar Python, Anda tidak perlu menginstalnya. Anda dapat mengimpor ke direktori Anda saat ini, seperti ini
import jsonCara Memuat String JSON dengan Python
Sintaks umum untuk memuat string JSON dengan Python adalah
Di Sini,
- = json.loads()9 adalah kamus Python tempat Anda ingin memuat string JSON,
- = json.loads()9 adalah string JSON yang valid
Ini memuat = json.loads()_9 ke dalam kamus Python = json.loads()9
Mari kita kode contoh. Di sini json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''_3 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 = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''3 ke dalam kamus Python menggunakan metode json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''5. Anda dapat menggunakan fungsi json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''_6 bawaan untuk memverifikasi bahwa json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''7 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 kolom dalam string JSON adalah key-value pair di json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''7
Cara Membuat String JSON dengan Python
Misalkan Anda memiliki kamus Python. Jadi bagaimana Anda membuat string JSON darinya?
Anda dapat melakukannya menggunakan metode json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''_9 dengan sintaks ini
= json.dumps()Di Sini,
- = json.loads()9 adalah kamus Python tempat Anda ingin membuat string JSON,
- = json.loads()_9 adalah string JSON yang dihasilkan
Jadi metode json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''_9 membuang = json.loads()9 ke dalam string JSON = json.loads()9
Ke kamus Python kami yang ada json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''7. mari tambahkan kunci baru 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'}]}6. 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 buang kamus yang dimodifikasi ke string JSON baru 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'}]}7 menggunakan metode json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''9
Seperti yang Anda lihat pada contoh di atas, string keluaran JSON sulit dibaca tanpa pemformatan yang tepat. Anda dapat menggunakan parameter opsional 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'}]}_9 untuk menambahkan lekukan
Dan Anda dapat melakukan ini dengan menyetel 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'}]}_9 ke bilangan bulat 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 ditindaklanjuti
Catatan. 💡 Jika Anda ingin kunci diurutkan dalam urutan abjad, Anda dapat mengatur parameter = json.dumps()1 ke = json.loads()6
Seperti yang Anda lihat pada cuplikan kode di bawah, 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. = json.dumps()3, = json.dumps()4 dan = json.dumps()5
Sejauh ini, Anda telah mempelajari cara bekerja dengan string JSON di Python. Di bagian selanjutnya, 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() # where is any valid JSON file.Perhatikan bagaimana kami menggunakan metode = json.dumps()_6 dan bukan metode json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''5. json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''_5 memuat string JSON, sementara = json.dumps()6 memuat file JSON
Anda harus mempertimbangkan untuk menggunakan pengelola konteks saat bekerja dengan file dengan Python. Anda juga dapat mencoba membaca file sebagai berikut, tanpa menggunakan pengelola konteks
= json.loads()0Jika Anda tidak menutup file, akan ada potensi pemborosan sumber daya
Namun, saat bekerja dengan manajer konteks, file ditutup secara otomatis setelah operasi file selesai
Dan Anda dapat menggunakan manajer konteks untuk membaca file, seperti yang ditunjukkan di bawah ini
= json.loads()_1Saat Anda membaca dari file, tentukan mode sebagai telah dibaca—ditunjukkan oleh py_dict["movies"] = [{"title":"The Imitation Game","year":"2014", "lang":"en","watched":True}]0 pada kode di atas
Baca file JSON dengan PythonCatatan. Untuk menavigasi direktori saat ini dengan mudah, pastikan file JSON berada di folder yang sama dengan py_dict["movies"] = [{"title":"The Imitation Game","year":"2014", "lang":"en","watched":True}]1, seperti yang ditunjukkan pada gambar di bawah. Jika file JSON Anda berada di folder yang berbeda, pastikan untuk menentukan jalur ke file tersebut
Di bagian selanjutnya, 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 py_dict["movies"] = [{"title":"The Imitation Game","year":"2014", "lang":"en","watched":True}]2 seperti yang ditunjukkan
= json.loads()_2Jadi sintaks di atas membuang kamus = json.loads()9 ke dalam file JSON = json.loads()9
Di bagian sebelumnya, kami memiliki kamus json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''7. Sekarang mari kita buang ke dalam file JSON baru. Dan beri nama py_dict["movies"] = [{"title":"The Imitation Game","year":"2014", "lang":"en","watched":True}]6
Dan sel kode berikut menunjukkan bagaimana Anda dapat menggunakan fungsi py_dict["movies"] = [{"title":"The Imitation Game","year":"2014", "lang":"en","watched":True}]2
= json.loads()_3Catatan. Membuka file dalam mode tulis (py_dict["movies"] = [{"title":"The Imitation Game","year":"2014", "lang":"en","watched":True}]8) 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
Buat file JSON dengan PythonSaat menulis ke file, tujuan utamanya adalah penyimpanan data. Dan jika Anda ingin mempertahankan pemformatan, Anda juga dapat menggunakan parameter 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'}]}9 dan = json.dumps()1