Gabay sa JSON sa Python: Mula Pagbasa Hanggang Pagsulat

1. Ano ang JSON?

Pangkalahatang Ideya ng JSON

Ang JSON (JavaScript Object Notation) ay isang magaan at napakaepektibong format para sa pagpapalitan ng data. Kadalasang ginagamit ito para sa paglipat ng data sa pagitan ng mga web application at server. Bagaman batay ito sa JavaScript, sinusuportahan ito ng halos lahat ng mga programming language. Lalo na sa pagkuha at pagpapadala ng data gamit ang mga API, napakahalaga ng JSON.

Estruktura ng JSON

Ang JSON ay binubuo ng mga pares na key at value, at ang data ay nakapaloob sa mga curly braces>{}. Bilang simpleng halimbawa, isipin ang sumusunod na data.
{
    "name": "John",
    "age": 30,
    "isStudent": false,
    "courses": ["Math", "Physics", "Chemistry"]
}
Ang estrukturang ito ay maaaring maglaman ng mga listahan at nested na mga object, at napaka-flexible.

2. Pangunahing paraan ng pag-load ng JSON file gamit ang Python

Pagpapakilala sa library na json ng Python

Sa Python, maaaring gamitin ang standard library na json upang madaling manipulahin ang mga JSON file. Hindi na kailangan ng karagdagang pag-install, at may kasamang mga pangunahing kakayahan para sa pagbasa at pagsulat ng mga file mula pa sa simula.

Paraan ng pag-load ng JSON file

Ipapaliwanag kung paano gamitin ang function na json.load() upang magbasa ng data mula sa isang file. Ang sumusunod na halimbawa ay isang simpleng code na naglo-load ng JSON mula sa file at nag-ooperate sa data bilang isang diksyunaryo.
import json

with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

print(data)

3. Paano magbasa ng JSON string sa Python

json.loads() Paggamit

Kapag nagko-convert ng JSON data na ibinigay bilang string sa dictionary ng Python, ginagamit ang function json.loads(). Madalas itong ginagamit kapag pinoproseso ang JSON string mula sa mga API response at iba pa.
import json

json_string = '{"name": "Alice", "age": 25, "city": "Tokyo"}'
data = json.loads(json_string)

print(data)
Sa ganitong paraan, madaling ma-convert ang JSON data bilang string sa dictionary.

4. Mga Paalala at Pagsasaayos ng Error sa Pagbasa ng JSON File

Karaniwang mga Error at Mga Paraan ng Pagtugon

Kapag nagbabasa ng JSON file, isa sa mga pinaka-karaniwang error ay ang JSONDecodeError. Nangyayari ang error na ito kapag ang file ay hindi nasa tamang JSON format. Mahalaga ang wastong paghawak ng error at ang pagsuri sa detalye ng error.
import json

try:
    with open('data.json', 'r', encoding='utf-8') as f:
        data = json.load(f)
except json.JSONDecodeError as e:
    print(f"Error sa pag-load ng JSON: {e}")

Isyu sa Encoding

Sa mga JSON file na may kasamang Japanese, kailangan mag-ingat sa character encoding. Sa pamamagitan ng pagtukoy ng encoding='utf-8', maiiwasan ang pagkasira ng mga karakter.

5. Epektibong Pagproseso ng Malalaking JSON Data

Pagproseso ng Data na Isinasaalang-alang ang Kahusayan sa Memorya

Kung susubukang basahin nang sabay-sabay sa memorya ang napakalaking JSON file, maaaring magkulang ang memorya. Upang maiwasan ito, inirerekomenda naming gumamit ng streaming library tulad ng ijson.
import ijson

with open('large_file.json', 'r', encoding='utf-8') as f:
    for item in ijson.items(f, 'item'):
        print(item)
Sa pamamagitan ng paggamit ng ijson, maaaring epektibong iproseso ang malalaking data.

6. Paggamit ng JSON data pagkatapos i-convert sa Python dictionary

Pangunahing operasyon sa dictionary

Sa pamamagitan ng pag-convert ng JSON sa uri ng dictionary, napakadali ang pag-manipula ng data. Halimbawa, maaaring kunin ang halaga na tumutugma sa isang tiyak na susi, o baguhin ang data.
# Halimbawa ng pag-manipula ng dictionary data
print(data['name'])  # Ipinapakita ang 'Alice'
data['age'] = 26  # I-update ang halaga
data['email'] = 'alice@example.com'  # Magdagdag ng bagong susi at halaga

7. Paliwanag din sa paraan ng pagsulat ng JSON sa Python

Pagsusulat sa file na JSON

Upang isulat ang dict na data na pinroseso sa Python sa isang file na JSON, gamitin ang function na json.dump(). Sa ganitong paraan, maaari mong i-save ang na-update na data.
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, indent=4, ensure_ascii=False)
indent=4 ay nag-aayos ng format ng output, at ensure_ascii=False ay nag-iimbak ng Japanese nang diretso.
侍エンジニア塾