89
with open(filename) as f:
bemor = json.load(f)
print(bemor)
Natija:
{'ism': 'Alijon Valiyev', 'yosh': 30, 'oila': True, 'farzandlar': ['Ahmad', 'Bonu'],
'allergiya': None, 'dorilar': [{'nomi': 'Analgin', 'miqdori': 0.5}, {'nomi': 'Panadol',
'miqdori': 1.2}]}
Navbat pprint() funksiyasiga:
pprint(bemor)
Natija:
{'allergiya': None,
'dorilar': [{'miqdori': 0.5, 'nomi': 'Analgin'},
{'miqdori': 1.2, 'nomi': 'Panadol'}],
'farzandlar': ['Ahmad', 'Bonu'],
'ism': 'Alijon Valiyev',
'oila': True,
'yosh': 30}
RegEx - ANDOZA YORDAMIDA MATN IZLASH
Pythondagi juda
foydali modullardan biri bu
re
(
regular expressions
)
moduli. Bu modul yordamida biror matn berilgan andozaga tushish, tushmalsigini
tekshrib ko'rishimiz mumkin. Yoki berilgan andoza asosida matnlar orasidan kerakli
matnlarni ajratib olish mumkin.
Keling boshlanishiga sodda misol ko'ramiz. Quyida biz 3 ta so'z va so'zlarni
tekshirish uchun andoza yaratdik. Quyidagi andozamiz т
harfidan boshlanuvchi
(
^т
), р harfiga tugovchi (р
$
), 5 harfdan iborat so'zlarni qidiradi (
^т...р$
).
Avvaliga andozalarni tushunish biroz qiyin bo'lishi mumkin, lekin vaqt o'tishi
bilan andoza qanday ishlashini tushunib olasiz deb umid qilamiz.
So'zlarni
andozaga solishtirish uchun
re.match()
funksiyasidan
foydalanamiz. Agar tekshirgan so'zimiz
andozaga mosh tushsa,
re.match()
metodi so'zni o'zini qaytaradi, aks holda
None
qiymatini qaytaradi.
import re
word1 = "темир"
word2 = "томир"
word3 = "тулпор"
andoza = "^т...р"
print(re.match(andoza, word1))
print(re.match(andoza, word2))
print(re.match(andoza, word3))
Natija:
None
90
Natijadan ko'rishimiz mumkin,
word1
va
word2
o'zgaruvchilari anfozaga
tushdi,
word3
esa tushmadi.
Keling endi, so'z to'pish o'yinida ishlatilgan soz'lar ro'yxatidan foydalanamiz,
va ro'yxatdan biz bergan andozaga tushuvchi so'zlarni ajratib olamiz.
from uzwords import words
andoza = "^т...р$"
matches = []
for word in words:
if re.match(andoza,word):
matches.append(word)
print(matches)
Natija:
['табар', 'табор', 'тавир', 'тайёр', 'татар', 'татир', 'тахир', 'тақир', 'театр',
'тембр', 'темир', 'темур', 'тенор', 'тикер', 'тихир', 'товар', 'товор', 'тожир', 'томир',
'тонер', 'тоҳир', 'триер', 'тумор', 'тўпар', 'тўпир']
Andozalar biror matnda biz uchun kerakli maʻlumotlarni ajratib olish uchun
juda qulay. Masalan, Telegram orqali yuborilgan habardan
email manzilini yoki
telefon raqamini ajratib olish uchun maxsus andoza yozishmiz mumkin.
ihateregex.io
sahifasidan esa loyihangiz uchun tayyor
andozalarni topishingiz
mumkin.
Keling, yuqoridagi andoza asosida biror matndan
email manzilini ajratib
olamiz. Buning uchun
re.findall()
funksiyasidan foydalanamiz.