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 json
modul. Morate uvesti modul prije nego što ga možete koristiti.
import json
Analizirajte JSON u Pythonu
json
Modul 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.json
koja 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.txt
u načinu pisanja pomoću 'w'
. Ako datoteka već ne postoji, bit će stvorena. Zatim se json.dump()
pretvara person_dict
u JSON niz koji će se spremiti u person.txt
datoteku.
Kada pokrenete program, person.txt
datoteka ć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 indent
i sort_keys
to 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 4
prostore 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