57 / 59

Python JSON

Python JSON bilan tanishish

JSON (JavaScript Object Notation) — tuzilgan ma'lumotlarni ifodalash uchun ishlatiladigan mashhur ma'lumot formati. Server va veb-ilova orasida JSON formatida ma'lumot uzatish va qabul qilish keng tarqalgan.

Pythonda, JSON satr sifatida mavjud. Masalan:

example.py
p = '{"name": "Bob", "languages": ["Python", "Java"]}'

JSON obyektini faylda saqlash ham keng tarqalgan.

json modulini import qilish

JSON (satr yoki JSON obyektini o'z ichiga olgan fayl) bilan ishlash uchun, siz Pythonning json modulidan foydalanishingiz mumkin. Undan foydalanishdan oldin modulni import qilishingiz kerak.

example.py
import json

Pythonda JSON'ni tahlil qilish (Parse)

json moduli JSON satrlarini va JSON obyektini o'z ichiga olgan fayllarni tahlil qilishni osonlashtiradi.

1-misol: Python JSON'dan dict'ga

JSON satrini json.loads() metodi yordamida tahlil qilishingiz mumkin. Metod lug'atni qaytaradi.

example.py
import json

person = '{"name": "Bob", "languages": ["English", "French"]}'
person_dict = json.loads(person)

# Natija: {'name': 'Bob', 'languages': ['English', 'French']}
print( person_dict)

# Natija: ['English', 'French']
print(person_dict['languages'])

Bu yerda, person — JSON satri, person_dict esa — lug'at.

2-misol: Python JSON faylini o'qish

JSON obyektini o'z ichiga olgan faylni o'qish uchun json.load() metodidan foydalanishingiz mumkin.

Aytaylik, sizda JSON obyektini o'z ichiga olgan person.json nomli faylingiz bor.

kod
{"name": "Bob", 
"languages": ["English", "French"]
}

Mana bu faylni qanday tahlil qilish mumkin:

example.py
import json

with open('path_to_file/person.json', 'r') as f:
  data = json.load(f)

# Natija: {'name': 'Bob', 'languages': ['English', 'French']}
print(data)

Bu yerda, biz json faylini o'qish uchun open() funksiyasidan foydalandik. Keyin, fayl json.load() metodi yordamida tahlil qilinadi, bu esa bizga data nomli lug'atni beradi.

Agar Pythonda fayllarni qanday o'qish va yozishni bilmasangiz, Python File I/O sahifasini ko'rib chiqishni tavsiya qilamiz.

Pythonda JSON satriga aylantirish

Lug'atni json.dumps() metodi yordamida JSON satriga aylantirishingiz mumkin.

3-misol: dict'ni JSON'ga aylantirish

example.py
import json

person_dict = {'name': 'Bob',
'age': 12,
'children': None
}
person_json = json.dumps(person_dict)

# Natija: {"name": "Bob", "age": 12, "children": null}
print(person_json)

Mana Python obyektlari va ularning JSON'ga mos konvertatsiyasini ko'rsatuvchi jadval.

PythonJSON'ga muvofiq
dictobject
list, tuplearray
strstring
int, float, intnumber
Truetrue
Falsefalse
Nonenull

JSON'ni faylga yozish

Pythonda JSON'ni faylga yozish uchun, biz json.dump() metodidan foydalanishimiz mumkin.

4-misol: JSON'ni faylga yozish

example.py
import json

person_dict = {"name": "Bob",
"languages": ["English", "French"],
"married": True,
"age": 32
}

with open('person.txt', 'w') as json_file:
  json.dump(person_dict, json_file)

Yuqoridagi dasturda, biz 'w' yordamida person.txt nomli faylni yozish rejimida ochdik. Agar fayl hali mavjud bo'lmasa, u yaratiladi. Keyin, json.dump() person_dictni person.txt faylida saqlanadigan JSON satriga aylantiradi.

Dasturni ishga tushirganingizda, person.txt fayli yaratiladi. Fayl ichida quyidagi matn bo'ladi.

kod
{"name": "Bob", "languages": ["English", "French"], "married": true, "age": 32}

Python JSON'ni chiroyli chop etish (Pretty Print)

JSON ma'lumotlarini tahlil qilish va sozlash (debug) uchun, biz uni o'qilishi osonroq formatda chop etishimiz kerak bo'lishi mumkin. Buni json.dumps() va json.dump() metodlariga qo'shimcha indent va sort_keys parametrlarini uzatish orqali qilish mumkin.

5-misol: Python JSON'ni chiroyli chop etish

example.py
import json

person_string = '{"name": "Bob", "languages": "English", "numbers": [2, 1.6, null]}'

# Lug'atni olish
person_dict = json.loads(person_string)

# JSON satrini chiroyli chop etish
print(json.dumps(person_dict, indent = 4, sort_keys=True))

Dasturni ishga tushirganingizda, natija bunday bo'ladi:

kod
{
    "languages": "English",
    "name": "Bob",
    "numbers": [
        2,
        1.6,
        null
    ]
}

Yuqoridagi dasturda, biz chekinish uchun 4 ta bo'sh joydan foydalandik. Va, kalitlar o'sish tartibida saralangan.

Aytgancha, indentning standart qiymati None. Va, sort_keysning standart qiymati False.

Tavsiya etilgan o'qishlar: Python JSON to CSV and vice-versa, Python XML to JSON and vice-versa, Python simplejson

QBilimingizni sinab ko'ring
1 / 3

1. JSON satrini Python lug'atiga aylantirish uchun qaysi metod ishlatiladi?