Darsliklar Python JSON

Python Python JSON

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.