О ЈСОН -у
ЈСОН (ЈаваСцрипт Објецт Нотатион) је формат датотеке и стандард за складиштење података који користи парове кључ / вредност за складиштење и размену података. То је најчешће коришћени формат за размену података, који се често види у РЕСТфул АПИ -јима, лаким базама података, конфигурационим датотекама и другом оффлине или онлине софтверу који треба да складишти, преузима и размењује податке. Већина програмских језика укључује библиотеке за рашчлањивање и писање ЈСОН података према заданим поставкама, а ЈСОН је формат података агностичких програмских језика. Вредности ускладиштене у ЈСОН датотеци или корисном оптерећењу обично садрже низове, бројеве и типове података који се могу серијализовати, попут листа (низова).
ЈСОН и Питхон речници
ЈСОН подаци у питхону се претварају у објекат речника коришћењем методе учитавања. Често се види да неки људи изједначавају јсон податке и питхон речник, јер је синтакса за дефинисање обоје скоро иста. Међутим, јсон подаци нису ништа друго него текстуални низ структуриран у крутој синтакси, док је питхон речник објект структуре података ускладиштен у меморији. Ако желите да меморишете податке речника у текстуалну датотеку или да их пошаљете у неки други програм који није питхон, мораћете прво да их претворите у текстуални низ (бајтова). Овај дампирани / конвертовани текстуални низ дефинисан је у ЈСОН -овој стандардној синтакси, а процес претварања питхон речника у јсон компатибилан низ назива се серијализација.
Читање и исписивање ЈСОН података у Питхону
ЈСОН подаци се могу преузети као одговор са сервера, прочитати из датотеке, исећи из параметара упита УРЛ -а итд. Овај чланак ће се углавном фокусирати на читање јсон података из локално ускладиштене датотеке. Претпоставимо да датотека тест.јсон садржи следеће податке:
{'цоденаме': 'Еоан Ермине', 'версион': 'Убунту 19.10'}
Да бисте прочитали датотеку тест.јсон у питхону, можете користити доњи код:
увозјсон
са отворен ('тест.јсон') каоф:
података=јсон.оптерећење(ф)
Депонија=јсон.депоније(података)
принт (података)
принт (тип(података))
принт (Депонија)
принт (тип(Депонија))
Први ред у горњем коду увози јсон модул. У следећем реду, опен се користи за безбедно читање садржаја датотеке. У оквиру витх опен блоцк, метода јсон.лоад се користи за читање и складиштење садржаја датотеке у променљивој података. Подаци учитани у претходном кораку се поново конвертују у јсон низ помоћу методе јсон.думп. Покретање горњег кода ће показати следеће резултате:
{'кодно име':'Еоан Ермине', 'верзија':„Убунту 19.10“}<класа 'дицт'>
{'кодно име':'Еоан Ермине', 'верзија':„Убунту 19.10“}
<класа 'стр'>
У горњем испису приметите да јсон.лоад метода чита необрађене јсон податке у речник питхона, док методе јсон.думпс претварају речник у низ који је компатибилан са ЈСОН структуром. Након што се ЈСОН објекат претвори у објекат речника питхон, можете користити уграђене методе речника питхон за руковање подацима. Горњи пример је прилично једноставан и не укључује низове у ЈСОН подацима или угнежђене вредности. Међутим, у оквиру питхона овим вредностима можете руковати као и са свим другим угнежђеним речницима и листама.
Сортирање и лепо штампање ЈСОН података
Метод јсон.думп подржава неке опционалне параметре за сортирање кључева и лепо штампање резултата ради боље читљивости.
увозјсонса отворен ('тест.јсон') каоф:
података=јсон.оптерећење(ф)
Депонија=јсон.депоније(података,сорт_кеис=Истина,увлачење=4)
принт (Депонија)
Горњи код ће приказати следећи излаз:
{'цоденаме': 'Еоан Ермине',
'версион': 'Убунту 19.10'
}
Конверзије типа података
Доња листа илуструје како се ЈСОН вредности претварају у питхон објекте и обрнуто.
ЈСОН | Питхон |
низ | п |
број | инт или флоат |
тачно нетачно | Тачно нетачно |
нула | Ниједан |
арраи | листа |
објекат | дицт |
Модул командне линије Јсон.тоол
Питхон укључује згодан помоћни програм за командну линију јсон.тоол који се може користити за проверу и лепо штампање ЈСОН низова и датотека.
$ ецхо'{' цоденаме ':' Еоан Ермине ',' версион ':' Убунту 19.10 '}'| питхон3 -м јсон.оруђеПокретањем горње наредбе показаће вам се следећи излаз:
{'цоденаме': 'Еоан Ермине',
'версион': 'Убунту 19.10'
}
Такође можете користити јсон.тоол са ЈСОН датотекама. Замените ин_филе и оут_филе у наредби испод жељеним вредностима:
$ питхон3 -м јсон.оруђеин_филе оут_филеОсим лепог штампања, сортирања и провере ЈСОН података, јсон.тоол не ради ништа друго. Дакле, ако желите да манипулишете било којим ЈСОН подацима, морате да напишете сопствени прилагођени код помоћу уграђеног ЈСОН модула.