JSON — shunchaki bir modul emas, balki butun internet tayangan ma’lumot almashish formati. Mobil ilova serverdan ma’lumot olganda, ikki tizim o’zaro “gaplashganda”, API javob qaytarganda — hammasi JSON orqali ketadi. Ko’plab loyihalardagi konfiguratsiya va ma’lumot fayllari ham aynan shu format.
JSON (JavaScript Object Notation) — ma’lumotni matn ko’rinishida saqlash va uzatish uchun yengil format. U Python’ning lug’at (dict) va ro’yxat (list) tuzilmalariga juda o’xshaydi, shuning uchun Python u bilan tabiiy ishlaydi.
json modulini ulash
Python’da JSON bilan ishlash uchun standart json moduli bor:
import json
Bu modul ikki asosiy vazifani bajaradi: Python obyektini JSON matnga aylantirish va JSON matnni qayta Python obyektga o’girish.
JSON matnni Python’da o’qish — loads
Agar sizda JSON ko’rinishidagi matn bo’lsa, uni json.loads() orqali Python lug’atiga aylantirasiz:
import json
matn = '{"ism": "Farrux", "yosh": 26, "shahar": "Toshkent"}'
malumot = json.loads(matn)
print(malumot["ism"])
print(malumot["yosh"])
print(type(malumot))
Farrux
26
<class 'dict'>
loads (load string) JSON matnni oddiy Python lug’atiga o’girdi, endi undagi qiymatlarga kalit orqali murojaat qilamiz. E’tibor bering: natija turi dict.
Python obyektni JSON’ga aylantirish — dumps
Teskari amal — Python lug’atini JSON matnga aylantirish json.dumps() orqali bajariladi:
import json
foydalanuvchi = {
"ism": "Master Sherkulov",
"yosh": 30,
"faol": True
}
natija = json.dumps(foydalanuvchi, ensure_ascii=False)
print(natija)
print(type(natija))
{"ism": "Master Sherkulov", "yosh": 30, "faol": true}
<class 'str'>
Diqqat ikki nuqtaga: Python’dagi True JSON’da true bo’lib chiqdi (JSON standarti shunday), va natija turi endi str — matn. ensure_ascii=False esa o’zbekcha va boshqa harflarni to’g’ri, o’qiladigan holda saqlaydi.
Chiroyli formatlash — indent
Katta JSON’ni o’qish uchun uni chiroyli, chekintirilgan ko’rinishda chiqarish mumkin:
import json
malumot = {"ism": "Farrux", "tillar": ["python", "sql"]}
print(json.dumps(malumot, indent=2, ensure_ascii=False))
{
"ism": "Farrux",
"tillar": [
"python",
"sql"
]
}
indent=2 har darajani ikki probel bilan chekintiradi. Aynan shu ko’rinishda ko’plab konfiguratsiya fayllari saqlanadi — shuning uchun ularni odam ko’zi bilan o’qish qulay.
Python va JSON turlari mosligi
Ikki tizim turlari bir-biriga qanday mos kelishini jadvalda ko’ramiz:
| Python | JSON |
|---|---|
dict |
object |
list, tuple |
array |
str |
string |
int, float |
number |
True / False |
true / false |
None |
null |
Bu moslikni bilish JSON bilan ishlashda xatolarning oldini oladi.
Xulosa
Bu darsda JSON formatini, json.loads() bilan matnni o’qish, json.dumps() bilan Python obyektni JSON’ga aylantirish, indent bilan formatlash va turlar mosligini o’rgandik. JSON — zamonaviy ilovalar orasidagi umumiy til. Keyingi darsda xatolarni boshqarish — Try Except mavzusiga o’tamiz.