Dalam tutorial ini, anda akan belajar menghurai, membaca dan menulis JSON di Python dengan bantuan contoh. Anda juga akan belajar menukar JSON menjadi perintah dan mencetaknya dengan cantik.
JSON ( J ava S cript O bject N otation) adalah format data popular yang digunakan untuk mewakili data berstruktur. Adalah biasa untuk menghantar dan menerima data antara pelayan dan aplikasi web dalam format JSON.
Di Python, JSON wujud sebagai rentetan. Sebagai contoh:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Juga biasa menyimpan objek JSON dalam fail.
Import Modul json
Untuk bekerja dengan JSON (rentetan, atau fail yang mengandungi objek JSON), anda boleh menggunakan json
modul Python . Anda perlu mengimport modul sebelum dapat menggunakannya.
import json
Huraikan JSON di Python
The json
modul menjadikannya mudah untuk menghuraikan rentetan JSON dan fail yang mengandungi JSON objek.
Contoh 1: Python JSON untuk menentukan
Anda boleh menguraikan rentetan JSON menggunakan json.loads()
kaedah. Kaedah 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, orang adalah rentetan JSON, dan person_dict adalah kamus.
Contoh 2: Python membaca fail JSON
Anda boleh menggunakan json.load()
kaedah untuk membaca fail yang mengandungi objek JSON.
Misalkan, anda mempunyai fail bernama person.json
yang mengandungi objek JSON.
("name": "Bob", "languages": ("English", "Fench") )
Inilah cara anda menguraikan fail 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 fail json. Kemudian, fail dihuraikan menggunakan json.load()
kaedah yang memberi kita kamus bernama data.
Sekiranya anda tidak tahu membaca dan menulis fail di Python, kami mengesyorkan anda menyemak Python File I / O.
Python Tukar kepada rentetan JSON
Anda boleh menukar kamus ke rentetan JSON menggunakan json.dumps()
kaedah.
Contoh 3: Tukar imbas menjadi 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 jadual yang menunjukkan objek Python dan penukarannya yang setara dengan JSON.
Python | Setaraf JSON |
---|---|
dict | objek |
list , tuple | susunan |
str | tali |
int , float ,int | nombor |
True | benar |
False | salah |
None | batal |
Menulis JSON ke fail
Untuk menulis JSON ke fail di Python, kita boleh menggunakan json.dump()
kaedah.
Contoh 4: Menulis JSON ke fail
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 mod penulisan menggunakan 'w'
. Sekiranya fail belum ada, ia akan dibuat. Kemudian, json.dump()
berubah person_dict
menjadi rentetan JSON yang akan disimpan dalam person.txt
fail.
Semasa anda menjalankan program, person.txt
fail akan dibuat. Fail mempunyai teks berikut di dalamnya.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python cetak cantik JSON
Untuk menganalisis dan menyahpepijat data JSON, kita mungkin perlu mencetaknya dalam format yang lebih mudah dibaca. Ini boleh dilakukan dengan melepaskan parameter tambahan indent
dan sort_keys
untuk json.dumps()
dan json.dump()
kaedah.
Contoh 5: JSON cetak cantik Python
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))
Semasa anda menjalankan program, outputnya adalah:
("bahasa": "Bahasa Inggeris", "nama": "Bob", "nombor": (2, 1.6, null))
Dalam program di atas, kami telah menggunakan 4
ruang untuk lekukan. Dan, kunci disusun mengikut urutan menaik.
By the way, nilai lalai inden adalah None
. Nilai lalai dari sort_keys adalah False
.
Bacaan yang Disyorkan:
- Python JSON ke CSV dan sebaliknya
- Python XML ke JSON dan sebaliknya
- Python simplejson