Š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, indentkā sort_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








