Python JSON: Baca, Tulis, Parse JSON (Dengan Contoh)

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 jsonmodul Python . Anda perlu mengimport modul sebelum dapat menggunakannya.

 import json

Huraikan JSON di Python

The jsonmodul 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.jsonyang 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.txtdalam mod penulisan menggunakan 'w'. Sekiranya fail belum ada, ia akan dibuat. Kemudian, json.dump()berubah person_dictmenjadi rentetan JSON yang akan disimpan dalam person.txtfail.

Semasa anda menjalankan program, person.txtfail 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 indentdan sort_keysuntuk 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 4ruang 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

Artikel menarik...