Питхон

Како претраживати податке у ЈСОН-у помоћу питхон-а

Како претраживати податке у ЈСОН-у помоћу питхон-а

Једна од најчешће коришћених техника сериализације података је ЈСОН формат. Питхон има уграђени модул ЈСОН за рад са ЈСОН подацима. Подржава све врсте примитивних типова података као што су број, низ итд., Заједно са питхон објектима. Подаци се чувају у структурираном формату у ЈСОН-у. Понекад је потребно претражити одређене податке из великог ЈСОН низа или ЈСОН датотеке. Постоји много начина за претраживање одређених података из ЈСОН података. У овом чланку је приказано како се ЈСОН подаци могу претраживати на основу кључа или вредности помоћу питхон скрипте.

Пример-1: Кључ за претрагу у једноставним ЈСОН подацима

Следећа скрипта показује како да претражите постоји ли одређени кључ у ЈСОН низу или не. Овде је променљива названа Ваши подаци је дефинисан за чување ЈСОН података. Вредност кључа узимаће се као улаз од корисника. лоад () метода ЈСОН модула користи се за учитавање ЈСОН података у именованој променљивој купац. Следећи, 'ин' оператор се користи за претрагу кључа.

#!/ уср / бин / енв питхон3
# Увези јсон модул
импорт јсон
# Дефинишите јсон податке
цустомерДата = "" "
"ид": "3425678",
"наме": "Џон Мајкл",
"емаил": "[емаил заштићен]",
"типе": "редовно",
„адреса“: „4258 Топола Чејс Лејн, Бојзи, Ајдахо."
"" "
# Унесите кључну вредност коју желите да претражите
кеиВал = инпут ("Унесите вредност кључа: \ н")
# учитавање јсон података
купац = јсон.оптерећења (цустомерДата)
# Претражите вредност кључа помоћу оператора 'ин'
ако је кеиВал у купцу:
# Одштампајте поруку о успеху и вредност кључа
испис ("% с је пронађен у ЈСОН подацима"% кеиВал)
принт ("Вредност", кеиВал, "је", купац [кеиВал])
иначе:
# Одштампајте поруку ако вредност не постоји
испис ("% с није пронађен у ЈСОН подацима"% кеиВал)

Излаз:

Овде се скрипта извршава два пута. Постојећа вредност кључа даје се први пут, а непостојећа вредност кључа даје се други пут.

Пример-2: Претражите одређену вредност у ЈСОН подацима

Следећа скрипта показује како да претражите одређену вредност у ЈСОН подацима. апликанти променљива садржи ЈСОН податке где се кључ користи за чување имена подносиоца захтева, а вредност се користи за чување подносиоца захтева који је присутан или одсутан. Скрипта ће претражити вредност „Одсутан“ у ЈСОН подацима и исписати одговарајућу вредност имена. за Овде се користи петља која понавља ЈСОН податке.

#!/ уср / бин / енв питхон3
# Увези јсон модул
импорт јсон
# Дефинишите јсон податке
апликанти = "" "
"Сцотт Ц Алдридге": "Садашњост",
"Јое Л Фосс": "Присутан",
"Цлиде М Голд": "Присутан",
„Моникуе Ц Доолиттле“: „Одсутан“,
"Давид М. Волкерт": "Садашњост",
"Исраел М Онеал": "Садашњост",
„Елизабетх М Грофф“: „Одсутна“
"" "
# Иницијализујте бројач
бројач = 0
# учитавање јсон података
аппЛист = јсон.оптерећења (подносиоци захтева)
# итерате јсон да бисте пронашли списак одсутног подносиоца захтева
за кључ у листи апликација:
иф (аппЛист [кеи] == 'Одсутан'):
# Проверите бројач исписати поруку
иф (бројач == 0):
принт ("Следећи кандидати су одсутни:")
штампа (кључ)
бројач = бројач + 1
# Одштампајте поруку ако ниједан подносилац захтева није одсутан
иф (бројач == 0):
принт („Присутни су сви подносиоци захтева“)

Излаз:

Према ЈСОН подацима из скрипте, два кандидата су одсутна. Ово ће бити резултат након покретања скрипте:

Пример-3: Претражите вредност у подацима ЈСОН низа помоћу прилагођене функције

У следећој скрипти, ЈСОН низ именован јсондата је дефинисан. Овде ће се претражити одређена вредност кључа, а ако вредност постоји, тада ће се вредност другог повезаног кључа исписати као излаз. сеарцх_прице () овде дефинисана функција узима вредност име кључ који ће се претраживати у ЈСОН подацима и он ће исписати вредност одговарајућег Цена по јединици кључ.

#!/ уср / бин / енв питхон3
# Увези јсон модул
импорт јсон
# Дефинишите јсон променљиву
јсондата = "" "[

"наме": "Оловка",
"унит_прице": 5
,

"наме": "Гумица",
"унит_прице": 3
,

"наме": "Оловка",
"унит_прице": 10
,

"наме": "Бели папир",
"унит_прице": 15

] "" "
# учитавање јсон података
итемс = јсон.оптерећења (јсондата)
# Унесите име ставке коју желите да претражите
итем = инпут ("Унесите назив ставке: \ н")
# Дефинишите функцију за претрагу ставке
деф сеарцх_прице (име):
за кеивал у предметима:
ако име.доњи () == кеивал ['наме'].доњи ():
врати кеивал ['унит_прице']
# Проверите повратну вредност и испишите поруку
иф (цена_за претрагу (ставка) != Нема):
принт ("Цена је:", сеарцх_прице (итем))
иначе:
принт ("Предмет није пронађен")

Излаз:

У овом излазу скрипта се извршава два пута. 'оловка' узима се као вредност име кључ који постоји у ЈСОН подаци. Тхе Цена по јединици од 'оловка' је 10 која се штампа. Следећи, 'књига' узима се као улазна вредност која не постоји у ЈСОН подацима.

Пример-4: Кључ за претрагу у угнежђеним ЈСОН подацима

Следећа скрипта приказује кораке за тражење вредности одређеног кључа у угнежђеним ЈСОН подацима. Овде је угнежђена ЈСОН променљива названа нестедДата проглашава се за чување угнежђених података. Ова скрипта ће претраживати име бренда женског сата.

#!/ уср / бин / енв питхон3
# Увези јсон модул
импорт јсон
# Дефинишите јсон променљиву угнежђених података
нестедДата = "" "
"гледати":
"мушкарци":
"бранд": "Титан",
„цена“: 200
,
"Жене":
"бранд": "Грађанин",
„цена“: 250
,
"кид":
"бранд": "Бланцпаин",
„цена“: 100


"" "
# Учитајте јсон податке
листа праћења = јсон.оптерећења (нестедДата)
# Претражујте „бренд“ за жене
ако је „бранд“ на листи праћења [„ватцх“] [„вомен“]:
испис (листа за надзор ['сат'] ['жене'] ['марка'])

Излаз:

У горњој скрипти постоји само једна вредност бренда за женски сат која је „Цитизен'. Следеће ће бити излаз након покретања скрипте.

Пример-5: Претражите унос из ЈСОН датотеке методом филтера и ламбда

Следећи кораци показују како можете да претражите унос из ЈСОН датотеке на основу одређеног кључа и вредности. Садржај књиге.јсон датотека је дата у наставку.

књиге.јсон

[

"исбн": "7799349885",
"наме": "Основе динамике возила",
"аутор": "Јооп П. Паувелуссен "
,

"исбн": "7799349885",
"наме": "Проток и сагоревање у клипним моторима",
"аутор": "Ц. Арцоуманис и Т. Камимото "
,

"исбн": "7799349885",
"наме": "Интеракција аутомобилских ергономија возача возила",
"аутор": "Николаос Гкикас"

]

Следећа скрипта ће претражити унос из књиге.јсон датотека, где је вредност Аутор кључ је Николаос Гкикас Користећи ламбда и филтер () метода.

#!/ уср / бин / енв питхон3
# Увоз ЈСОН модула
импорт јсон
# Отворите постојећу ЈСОН датотеку за учитавање у променљиву
са отвореним ('књигама.јсон ') као јсондата:
дата = јсон.оптерећење (јсондата)
# Претражујте податке на основу кључа и вредности помоћу методе филтера и листе
испис (листа (филтер (ламбда к: к ["аутор"] == "Николаос Гкикас", подаци)))

Излаз:

Следећи излаз ће се појавити након покретања скрипте.

Закључак:

Када радимо са великом количином ЈСОН података и треба да са лакоћом сазнамо одређене податке из података, морамо да користимо ефикасне начине за извршавање задатка. У овом чланку су објашњени различити начини претраживања кључа и вредности у ЈСОН подацима који помажу корисницима питхона да успешно изврше поступак.

Најбоље игре за ручно праћење
Оцулус Куест је недавно представио сјајну идеју ручног праћења без контролера. Са све већим бројем игара и активности које извршавају подршку формално...
Како приказати ОСД прекривач у целом екрану Линук апликација и игара
Играње игара преко целог екрана или коришћење апликација у режиму целог екрана без ометања може вам одсећи релевантне системске информације видљиве на...
Топ 5 карата за хватање игара
Сви смо видели и волели стримовање играња на ИоуТубе-у. ПевДиеПие, Јакесептицие и Маркиплиер само су неки од најбољих играча који су зарадили милионе ...