Dalam tutorial ini, Anda akan belajar mengurai, membaca, dan menulis JSON dengan Python dengan bantuan contoh. Selain itu, Anda akan belajar mengubah JSON menjadi dict dan mencetaknya dengan cantik.
JSON ( J ava S cript O bject N otation ) adalah format data populer yang digunakan untuk merepresentasikan data terstruktur. Mengirim dan menerima data antara server dan aplikasi web dalam format JSON merupakan hal yang umum.
Di Python, JSON ada sebagai string. Sebagai contoh:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Ini juga umum untuk menyimpan objek JSON dalam sebuah file.
Impor Modul json
Untuk bekerja dengan JSON (string, atau file yang berisi objek JSON), Anda dapat menggunakan json
modul Python . Anda perlu mengimpor modul sebelum dapat menggunakannya.
import json
Parse JSON dengan Python
The json
Modul membuatnya mudah untuk mengurai JSON string dan file yang berisi JSON objek.
Contoh 1: Python JSON untuk mendikte
Anda dapat mengurai string JSON menggunakan json.loads()
metode. Metode mengembalikan kamus.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Di sini, person adalah string JSON, dan person_dict adalah kamus.
Contoh 2: Python membaca file JSON
Anda dapat menggunakan json.load()
metode untuk membaca file yang berisi objek JSON.
Misalkan, Anda memiliki file bernama person.json
yang berisi objek JSON.
("name": "Bob", "languages": ("English", "Fench") )
Berikut cara mengurai file ini:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Di sini, kami telah menggunakan open()
fungsi untuk membaca file json. Kemudian, file tersebut diurai menggunakan json.load()
metode yang memberi kita kamus bernama data.
Jika Anda tidak tahu cara membaca dan menulis file dengan Python, kami sarankan Anda untuk memeriksa I / O File Python.
Konversi Python ke string JSON
Anda dapat mengonversi kamus menjadi string JSON menggunakan json.dumps()
metode.
Contoh 3: Ubah dikt ke JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Berikut adalah tabel yang menunjukkan objek Python dan konversinya yang setara ke JSON.
Python | Setara JSON |
---|---|
dict | obyek |
list , tuple | Himpunan |
str | tali |
int , float ,int | jumlah |
True | benar |
False | Salah |
None | batal |
Menulis JSON ke sebuah file
Untuk menulis JSON ke file dengan Python, kita bisa menggunakan json.dump()
metode.
Contoh 4: Menulis JSON ke file
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
Dalam program di atas, kami telah membuka file bernama person.txt
dalam mode penulisan menggunakan 'w'
. Jika file belum ada, itu akan dibuat. Kemudian, json.dump()
ubah person_dict
menjadi string JSON yang akan disimpan di person.txt
file.
Saat Anda menjalankan program, person.txt
file akan dibuat. File tersebut memiliki teks berikut di dalamnya.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python cukup mencetak JSON
Untuk menganalisis dan men-debug data JSON, kita mungkin perlu mencetaknya dalam format yang lebih mudah dibaca. Ini bisa dilakukan dengan meneruskan parameter tambahan indent
dan sort_keys
ke json.dumps()
dan json.dump()
metode.
Contoh 5: Python cukup cetak JSON
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Saat Anda menjalankan program, hasilnya adalah:
("bahasa": "Inggris", "nama": "Bob", "angka": (2, 1.6, null))
Dalam program di atas, kami telah menggunakan 4
spasi untuk indentasi. Dan, kunci diurutkan dalam urutan menaik.
Omong-omong, nilai default indentasi adalah None
. Dan, nilai default dari sort_keys adalah False
.
Bacaan yang Direkomendasikan:
- Python JSON ke CSV dan sebaliknya
- Python XML ke JSON dan sebaliknya
- Python simplejson