Python ja JSON: Põhjalik juhend andmetöötluseks | Tehniline veebisait

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.

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール