Python / JSON ба CSV өгөгдөл

JSON ба CSV өгөгдөл

Бодит ертөнцийн программ бараг бүгд өгөгдөл файлд хадгалж, уншдаг. Хамгийн түгээмэл хоёр формат бол JSON (JavaScript Object Notation) ба CSV (Comma-Separated Values). Python-д хоёулаа стандарт модулиар дэмжигдэнэ — нэмэлт пакеж суулгах шаардлагагүй.

JSON — бүтэцтэй өгөгдөл

JSON нь Python-ий dict ба list-тэй яг адилхан бүтэцтэй. json модуль нь хоёрыг хооронд нь хөрвүүлдэг.

python
import json

# Python dict → JSON мөр
хэрэглэгч = {
    "нэр": "Болд",
    "нас": 22,
    "курсууд": ["python", "javascript"],
    "идэвхтэй": True
}

json_мөр = json.dumps(хэрэглэгч, ensure_ascii=False, indent=2)
print(json_мөр)
# {
#   "нэр": "Болд",
#   "нас": 22,
#   "курсууд": ["python", "javascript"],
#   "идэвхтэй": true
# }

# JSON мөр → Python dict
буцаасан = json.loads(json_мөр)
print(буцаасан["нэр"])   # Болд

ensure_ascii=False нь Монгол Кирилл тэмдэгтийг зөв хадгалдаг — заавал тавих ёстой. indent=2 нь хүн унших боломжтой форматаар хэвлэнэ.

JSON файл унших ба бичих

API-аас ирсэн өгөгдлийг файлд хадгалах, дараа нь уншихад json.dump() ба json.load() ашиглана:

python
import json

# Файлд бичих
сурагчид = [
    {"нэр": "Болд", "xp": 150},
    {"нэр": "Сарнай", "xp": 320},
    {"нэр": "Төгс", "xp": 80},
]

with open("сурагчид.json", "w", encoding="utf-8") as файл:
    json.dump(сурагчид, файл, ensure_ascii=False, indent=2)

# Файлаас унших
with open("сурагчид.json", "r", encoding="utf-8") as файл:
    ачаалсан = json.load(файл)

for сурагч in ачаалсан:
    print(f"{сурагч['нэр']}: {сурагч['xp']} XP")
# Болд: 150 XP
# Сарнай: 320 XP
# Төгс: 80 XP

Файл унших/бичихэд заавал encoding="utf-8" зааж өгөх — энэ нь Монгол тэмдэгтийг зөв хадгалах баталгаа.

CSV — хүснэгт өгөгдөл

CSV нь Excel-ийн хүснэгт шиг мөр, баганатай өгөгдлийг хадгалдаг текст формат. csv модуль ашиглана.

python
import csv

# CSV файлд бичих
сурагчид = [
    ["нэр", "нас", "xp"],          # header мөр
    ["Болд", 22, 150],
    ["Сарнай", 20, 320],
    ["Төгс", 25, 80],
]

with open("сурагчид.csv", "w", newline="", encoding="utf-8-sig") as файл:
    зохиогч = csv.writer(файл)
    зохиогч.writerows(сурагчид)

# CSV файлаас унших
with open("сурагчид.csv", "r", encoding="utf-8-sig") as файл:
    уншигч = csv.DictReader(файл)
    for мөр in уншигч:
        print(f"{мөр['нэр']}{мөр['xp']} XP")
# Болд — 150 XP
# Сарнай — 320 XP
# Төгс — 80 XP

utf-8-sig нь Windows Excel-д Монгол тэмдэгт зөв харагдуулах encoding. DictReader нь header мөрийг автоматаар түлхүүр болгон ашигладаг — хамгийн тохиромжтой арга.

JSON эсвэл CSV — аль нь сонгох вэ?

| Нөхцөл | Сонголт | | --- | --- | | API-тай харилцах | JSON | | Нарийн бүтэцтэй өгөгдөл (nested) | JSON | | Хүснэгт, тайлан өгөгдөл | CSV | | Excel-д нээх | CSV | | Өгөгдлийн шинжилгээ (Pandas) | CSV эсвэл JSON |

Хоёуланг нь сурснаар та ямар ч бодит тохиолдолд тохируулан ашиглаж чадна.

Дараагийн хичээлд:

Вэб хусах (requests + BeautifulSoup) — интернетээс өгөгдөл автоматаар татах, HTML задлах аргыг сурна.