1. Mis on JSON?
JSON-i ülevaade
JSON (JavaScript Object Notation) on kerge ja andmevahetuseks väga tõhus formaat. Seda kasutatakse peamiselt andmete vahetamiseks veebirakenduste ja serverite vahel. Kuigi see põhineb JavaScriptil, toetab seda peaaegu iga programmeerimiskeel. Eriti olulist rolli mängib JSON andmete hankimisel ja saatmisel, kasutades API-sid.
JSON-i struktuur
JSON koosneb võtme-väärtuse paaridest ja andmed on ümbritsetud looksulgudega {}
. Lihtsa näitena kujutage ette järgmist andmestruktuuri:
{
"name": "John",
"age": 30,
"isStudent": false,
"courses": ["Math", "Physics", "Chemistry"]
}
See struktuur on väga paindlik ja võib sisaldada ka loendeid või pesastatud objekte.
2. JSON-failide lugemise põhitõed Pythonis
Pythoni json
-teegi kasutuselevõtt
Pythonis saab JSON-faile hõlpsalt käsitleda, kasutades standardteeki json
. Lisainstallatsioone pole vaja ja failide lugemise ning kirjutamise põhilised funktsioonid on kohe olemas.
Kuidas JSON-faile lugeda
Selgitame, kuidas lugeda andmeid failist, kasutades funktsiooni json.load()
. Järgmine näide on lihtne kood, mis loeb JSON-i failist ja käsitleb andmeid sõnastikuna:
import json
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)
3. Kuidas lugeda JSON-stringi Pythonis
Funktsiooni json.loads()
kasutamine
Kui soovite teisendada stringina antud JSON-andmed Pythoni sõnastikuks, kasutage funktsiooni json.loads()
. Seda kasutatakse sageli JSON-stringide töötlemisel näiteks API vastustes.
import json
json_string = '{"name": "Alice", "age": 25, "city": "Tokyo"}'
data = json.loads(json_string)
print(data)
Nii saate hõlpsalt teisendada JSON-andmed stringina sõnastikuks.
4. JSON-faili lugemise hoiatused ja veakäsitlus
Levinud vead ja nende lahendamine
JSON-failide lugemisel on üks levinumaid vigu **JSONDecodeError**. See viga ilmneb siis, kui fail ei ole õiges JSON-vormingus. Oluline on teostada sobiv veakäsitlus ja kontrollida vea üksikasju.
import json
try:
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
except json.JSONDecodeError as e:
print(f"JSON-i lugemise viga: {e}")
Kodeerimisprobleemid
Jaapani keelt sisaldavate JSON-failide puhul tuleb pöörata tähelepanu märgistikule. `encoding=’utf-8’` määramine aitab vältida märgistikuvigu.
5. Suurte JSON-andmete tõhus töötlemine
Mälu tõhusust arvestav andmetöötlus
Suure JSON-faili korraga mällu laadimine võib põhjustada mälupuuduse. Selle vältimiseks on soovitatav kasutada voogedastusteeke nagu `ijson`.
import ijson
with open('large_file.json', 'r', encoding='utf-8') as f:
for item in ijson.items(f, 'item'):
print(item)
`ijson` abil saab suuri andmeid tõhusalt töödelda.
6. Kuidas kasutada JSON-andmeid pärast Pythoni sõnastikuks teisendamist
Põhilised sõnastiku operatsioonid
JSON-i teisendamine sõnastikuks teeb andmetöötluse väga lihtsaks. Näiteks on võimalik hankida väärtus, mis vastab teatud võtmele, või andmeid muuta.
# Näide sõnastiku andmetöötlusest
print(data['name']) # kuvatakse 'Alice'
data['age'] = 26 # väärtuse uuendamine
data['email'] = 'alice@example.com' # uue võtme ja väärtuse lisamine
7. JSON-i kirjutamine Pythonis
Kirjutamine JSON-faili
Pythonis töödeldud sõnastikuandmete JSON-vormingus faili kirjutamiseks kasutatakse funktsiooni `json.dump()`. See võimaldab salvestada uuendatud andmed.
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4, ensure_ascii=False)
Valik `indent=4` vormindab väljundi ja `ensure_ascii=False` salvestab Jaapani tähed otse.