V tej vadnici se boste s pomočjo primerov naučili razčleniti, prebrati in zapisati JSON v Pythonu. Prav tako se boste naučili pretvoriti JSON v dict in ga lepo natisniti.
JSON ( J ava S cript O bject N otation) je priljubljena oblika zapisa podatkov, ki se uporablja za predstavitev strukturiranih podatkov. Pogosto je prenos in sprejemanje podatkov med strežnikom in spletno aplikacijo v obliki JSON.
V Pythonu JSON obstaja kot niz. Na primer:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Običajno je tudi shranjevanje predmeta JSON v datoteko.
Uvozi json modul
Za delo z JSON (nizom ali datoteko, ki vsebuje objekt JSON) lahko uporabite Pythonov json
modul. Pred uporabo modula morate uvoziti.
import json
Razčlenite JSON v Pythonu
json
Modul omogoča enostavno razčleniti JSON strune in datotek, ki vsebujejo JSON objekt.
Primer 1: Python JSON za narekovanje
Niz JSON lahko razčlenite z json.loads()
metodo. Metoda vrne slovar.
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'))
Tu je oseba niz JSON in oseba_dict je slovar.
Primer 2: Python je prebral datoteko JSON
Z json.load()
metodo lahko berete datoteko, ki vsebuje objekt JSON.
Recimo, da imate datoteko z imenom, person.json
ki vsebuje objekt JSON.
("name": "Bob", "languages": ("English", "Fench") )
To datoteko lahko razčlenite tako:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Tu smo open()
funkcijo uporabili za branje datoteke json. Nato je datoteka razčlenjena z json.load()
metodo, ki nam da slovar z imenom.
Če ne veste, kako brati in pisati datoteke v Pythonu, vam priporočamo, da preverite I / O datoteke Python.
Python Pretvori v niz JSON
Slovar lahko pretvorite v niz JSON z uporabo json.dumps()
metode.
Primer 3: Pretvori dict v 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)
Tu je tabela, ki prikazuje predmete Python in njihovo enakovredno pretvorbo v JSON.
Python | JSON enakovredno |
---|---|
dict | predmet |
list , tuple | matriko |
str | vrvica |
int , float ,int | številko |
True | prav |
False | napačno |
None | nič |
Zapisovanje datoteke JSON v datoteko
Za zapis JSON-a v datoteko v Pythonu lahko uporabimo json.dump()
metodo.
Primer 4: Zapisovanje datoteke JSON v datoteko
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)
V zgornjem programu smo z datoteko odprli datoteko, imenovano person.txt
v načinu pisanja 'w'
. Če datoteka še ne obstaja, bo ustvarjena. Nato se json.dump()
pretvori person_dict
v niz JSON, ki bo shranjen v person.txt
datoteki.
Ko zaženete program, bo person.txt
datoteka ustvarjena. Datoteka vsebuje naslednje besedilo.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python lepi tisk JSON
Za analizo in razhroščevanje podatkov JSON jih bomo morda morali natisniti v bolj berljivi obliki. To lahko storite tako, da posredujete dodatne parametre indent
in sort_keys
to json.dumps()
in json.dump()
.
Primer 5: Python lepi tisk 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))
Ko zaženete program, bo rezultat:
("languages": "angleščina", "name": "Bob", "numbers": (2, 1.6, null))
V zgornjem programu smo uporabili 4
presledke za vdolbino. Tipke so razvrščene po naraščajočem vrstnem redu.
Mimogrede, privzeta vrednost zamika je None
. In privzeta vrednost sort_keys je False
.
Priporočena branja:
- Python JSON v CSV in obratno
- Python XML v JSON in obratno
- Python simplejson