Cara Mengurai JSON dengan Python

Diterbitkan: 2022-02-09

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 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 dan false . Dengan Python, ini dikonversi ke Booleans True dan False .

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 ke True .

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 metode loads() . loads() memuat string JSON, sementara load() 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.

baca-json-file-in-python
Baca file JSON dengan Python.

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.

buat-json-file-python
Buat file JSON dengan Python

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() dan load() untuk membaca string JSON dan file JSON masing-masing,
  • cara menggunakan metode dumps() dan dump() 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.