Python JSON: lasīšana, rakstīšana, parsēšana JSON (ar piemēriem)

Šajā apmācībā jūs mācīsit parsēt, lasīt un rakstīt JSON Python ar piemēru palīdzību. Jūs arī iemācīsities pārveidot JSON, lai to diktētu un diezgan izdrukātu.

JSON ( J ava S cript O bject N otation) ir populārs datu formāts, ko izmanto, lai pārstāv strukturētus datus. Datu pārsūtīšana un saņemšana starp serveri un tīmekļa lietojumprogrammu ir izplatīta JSON formātā.

Programmā Python JSON pastāv kā virkne. Piemēram:

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

Ir arī parasta JSON objekta glabāšana failā.

Importēt Json moduli

Lai strādātu ar JSON (virkne vai fails, kas satur objektu JSON), varat izmantot Python jsonmoduli. Pirms lietojat moduli, tas ir jāimportē.

 import json

Parsējiet JSON Python

jsonModulis ļauj viegli apstrādāt JSON virknes un failus, kas satur JSON objektu.

1. piemērs: diktēt Python JSON

Izmantojot json.loads()metodi, varat parsēt JSON virkni . Metode atgriež vārdnīcu.

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

Šeit persona ir JSON virkne, un person_dict ir vārdnīca.

2. piemērs: Python nolasa JSON failu

Jūs varat izmantot json.load()metodi, lai lasītu failu, kas satur JSON objektu.

Pieņemsim, ka jums ir fails ar nosaukumu person.jsonJSON.

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

Lūk, kā varat parsēt šo failu:

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

Šeit mēs izmantojām open()funkciju, lai lasītu Json failu. Pēc tam fails tiek parsēts, izmantojot json.load()metodi, kas dod mums vārdnīcu ar datiem.

Ja nezināt, kā lasīt un rakstīt failus Python, iesakām pārbaudīt Python File I / O.

Python konvertēšana uz JSON virkni

Izmantojot json.dumps()metodi, varat pārveidot vārdnīcu par JSON virkni .

3. piemērs: konvertējiet dict uz 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) 

Šeit ir tabula, kurā parādīti Python objekti un to ekvivalents pārveidojums par JSON.

Python JSON ekvivalents
dict objekts
list, tuple masīvs
str virkne
int, float,int numuru
True taisnība
False nepatiesa
None nulle

JSON rakstīšana failā

Lai JSON ierakstītu failā Python, mēs varam izmantot json.dump()metodi.

4. piemērs: JSON rakstīšana 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) 

Iepriekš minētajā programmā mēs esam atvēruši failu, kas nosaukts person.txtrakstīšanas režīmā, izmantojot 'w'. Ja fails vēl nepastāv, tas tiks izveidots. Pēc tam json.dump()pārveido person_dictpar JSON virkni, kas tiks saglabāta person.txtfailā.

Palaidot programmu, person.txtfails tiks izveidots. Faila iekšpusē ir šāds teksts.

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

Python diezgan izdrukāt JSON

Lai analizētu un atkļūdotu JSON datus, mums var būt nepieciešams tos izdrukāt lasāmākā formātā. To var izdarīt, nododot papildu parametrus, indentsort_keysarī metodi json.dumps()un json.dump()metodi.

5. piemērs: Python diezgan izdrukāt 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)) 

Palaidot programmu, izeja būs:

 ("valodas": "angļu valoda", "vārds": "Bobs", "skaitļi": (2, 1,6, nulle)) 

Iepriekš minētajā programmā mēs esam izmantojuši 4atstarpes atstarpēm. Atslēgas tiek sakārtotas augošā secībā.

Starp citu, atkāpes noklusējuma vērtība ir None. Un sort_keys noklusējuma vērtība ir False.

Ieteicamie lasījumi:

  • Python JSON uz CSV un otrādi
  • Python XML uz JSON un otrādi
  • Python simplejson

Interesanti raksti...