Python JSON: branje, pisanje, razčlenitev JSON (z primeri)

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 jsonmodul. Pred uporabo modula morate uvoziti.

 import json

Razčlenite JSON v Pythonu

jsonModul 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.jsonki 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.txtv načinu pisanja 'w'. Če datoteka še ne obstaja, bo ustvarjena. Nato se json.dump()pretvori person_dictv niz JSON, ki bo shranjen v person.txtdatoteki.

Ko zaženete program, bo person.txtdatoteka 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 indentin sort_keysto 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 4presledke 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

Zanimive Članki...