Š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 json
moduli. Pirms lietojat moduli, tas ir jāimportē.
import json
Parsējiet JSON Python
json
Modulis ļ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.json
JSON.
("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.txt
rakstīšanas režīmā, izmantojot 'w'
. Ja fails vēl nepastāv, tas tiks izveidots. Pēc tam json.dump()
pārveido person_dict
par JSON virkni, kas tiks saglabāta person.txt
failā.
Palaidot programmu, person.txt
fails 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, indent
kā sort_keys
arī 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 4
atstarpes 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