JSON ба CSV өгөгдөл
Бодит ертөнцийн программ бараг бүгд өгөгдөл файлд хадгалж, уншдаг. Хамгийн түгээмэл хоёр формат бол JSON (JavaScript Object Notation) ба CSV (Comma-Separated Values). Python-д хоёулаа стандарт модулиар дэмжигдэнэ — нэмэлт пакеж суулгах шаардлагагүй.
JSON — бүтэцтэй өгөгдөл
JSON нь Python-ий dict ба list-тэй яг адилхан бүтэцтэй. json модуль нь хоёрыг хооронд нь хөрвүүлдэг.
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() ашиглана:
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 модуль ашиглана.
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 задлах аргыг сурна.