Python JSON: Čitanje, pisanje, raščlanjivanje JSON-a (s primjerima)

U ovom vodiču naučit ćete raščlaniti, čitati i pisati JSON u Pythonu uz pomoć primjera. Također, naučit ćete pretvoriti JSON u dikt i lijepo ga ispisati.

JSON ( J Ava S cript O bject N otation) je popularni format podataka koristi za predstavljanje strukturiranih podataka. Uobičajeno je prenositi i primati podatke između poslužitelja i web aplikacije u JSON formatu.

U Pythonu JSON postoji kao niz. Na primjer:

 p = '("name": "Bob", "languages": ("Python", "Java"))' 

Također je uobičajeno pohraniti JSON objekt u datoteku.

Uvoz json modula

Za rad s JSON-om (nizom ili datotekom koja sadrži JSON objekt) možete koristiti Pythonov jsonmodul. Morate uvesti modul prije nego što ga možete koristiti.

 import json

Analizirajte JSON u Pythonu

jsonModul olakšava analizirati JSON žice i datoteka koje sadrže JSON objekt.

Primjer 1: Python JSON za diktiranje

Možete raščlaniti JSON niz pomoću json.loads()metode. Metoda vraća rječnik.

 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'))

Ovdje je osoba JSON niz, a person_dict je rječnik.

Primjer 2: Python čita JSON datoteku

Pomoću json.load()metode možete čitati datoteku koja sadrži JSON objekt.

Pretpostavimo da imate datoteku s imenom person.jsonkoja sadrži JSON objekt.

  ("name": "Bob", "languages": ("English", "Fench") ) 

Evo kako možete raščlaniti ovu datoteku:

  import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data) 

Ovdje smo koristili open()funkciju za čitanje json datoteke. Zatim se datoteka raščlanjuje json.load()metodom koja nam daje rječnik s podacima.

Ako ne znate čitati i pisati datoteke na Pythonu, preporučujemo vam da provjerite Python I / O datoteku.

Python Pretvori u JSON niz

Rječnik možete pretvoriti u JSON niz pomoću json.dumps()metode.

Primjer 3: Pretvorite dikt u 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) 

Evo tablice koja prikazuje Python objekte i njihovu ekvivalentnu pretvorbu u JSON.

Piton JSON ekvivalentan
dict objekt
list, tuple niz
str niz
int, float,int broj
True pravi
False lažno
None nula

Zapisivanje JSON-a u datoteku

Za pisanje JSON-a u datoteku u Pythonu možemo koristiti json.dump()metodu.

Primjer 4: Zapisivanje JSON-a u datoteku

  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) 

U gore navedenom programu otvorili smo datoteku imenovanu person.txtu načinu pisanja pomoću 'w'. Ako datoteka već ne postoji, bit će stvorena. Zatim se json.dump()pretvara person_dictu JSON niz koji će se spremiti u person.txtdatoteku.

Kada pokrenete program, person.txtdatoteka će se stvoriti. Datoteka sadrži sljedeći tekst.

 ("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)

Python lijepi ispis JSON

Da bismo analizirali i otklonili pogreške u JSON podacima, možda ćemo ih trebati ispisati u čitljivijem formatu. To se može učiniti prosljeđivanjem dodatnih parametara indenti sort_keysto json.dumps()i json.dump()metodi.

Primjer 5: Python lijepi ispis 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)) 

Kada pokrenete program, izlaz će biti:

 ("languages": "engleski", "name": "Bob", "numbers": (2, 1.6, null)) 

U gore navedenom programu koristili smo 4prostore za uvlačenje. I, tipke su poredane uzlazno.

Inače, zadana vrijednost uvlake je None. I, zadana vrijednost sort_keys je False.

Preporučena čitanja:

  • Python JSON u CSV i obrnuto
  • Python XML u JSON i obrnuto
  • Python simplejson

Zanimljivi članci...