Како читати и писати Јсон датотеке у Питхону

How Read Write Json Files Python



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

О ЈСОН -у

ЈСОН (ЈаваСцрипт Објецт Нотатион) је формат датотеке и стандард за складиштење података који користи парове кључ / вредност за складиштење и размену података. То је најчешће коришћени формат за размену података, који се често види у РЕСТфул АПИ -јима, лаким базама података, конфигурационим датотекама и другом оффлине или онлине софтверу који треба да складишти, преузима и размењује податке. Већина програмских језика укључује библиотеке за рашчлањивање и писање ЈСОН података према заданим поставкама, а ЈСОН је формат података агностичких програмских језика. Вредности ускладиштене у ЈСОН датотеци или корисном оптерећењу обично садрже низове, бројеве и типове података који се могу серијализовати, попут листа (низова).







ЈСОН и Питхон речници

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



Читање и исписивање ЈСОН података у Питхону

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



{'цоденаме': 'Еоан Ермине', 'версион': 'Убунту 19.10'}

Да бисте прочитали датотеку тест.јсон у питхону, можете користити доњи код:





увозјсон

са отворен ('тест.јсон') каоф:
података=јсон.оптерећење(ф)

Депонија=јсон.депоније(података)

принт (података)
принт (тип(података))
принт (Депонија)
принт (тип(Депонија))

Први ред у горњем коду увози јсон модул. У следећем реду, опен се користи за безбедно читање садржаја датотеке. У оквиру витх опен блоцк, метода јсон.лоад се користи за читање и складиштење садржаја датотеке у променљивој података. Подаци учитани у претходном кораку се поново конвертују у јсон низ помоћу методе јсон.думп. Покретање горњег кода ће показати следеће резултате:

{'кодно име':'Еоан Ермине', 'верзија':„Убунту 19.10“}
<класа 'дицт'>
{'кодно име':'Еоан Ермине', 'верзија':„Убунту 19.10“}
<класа 'стр'>

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



Сортирање и лепо штампање ЈСОН података

Метод јсон.думп подржава неке опционалне параметре за сортирање кључева и лепо штампање резултата ради боље читљивости.

увозјсон

са отворен ('тест.јсон') каоф:
података=јсон.оптерећење(ф)

Депонија=јсон.депоније(података,сорт_кеис=Истина,увлачење=4)
принт (Депонија)

Горњи код ће приказати следећи излаз:

{
'цоденаме': 'Еоан Ермине',
'версион': 'Убунту 19.10'
}

Конверзије типа података

Доња листа илуструје како се ЈСОН вредности претварају у питхон објекте и обрнуто.

ЈСОН Питхон
низ п
број инт или флоат
тачно нетачно Тачно нетачно
нула Ниједан
арраи листа
објекат дицт

Модул командне линије Јсон.тоол

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

$ ецхо'{' цоденаме ':' Еоан Ермине ',' версион ':' Убунту 19.10 '}'| питхон3 -м јсон.оруђе

Покретањем горње наредбе показаће вам се следећи излаз:

{
'цоденаме': 'Еоан Ермине',
'версион': 'Убунту 19.10'
}

Такође можете користити јсон.тоол са ЈСОН датотекама. Замените ин_филе и оут_филе у наредби испод жељеним вредностима:

$ питхон3 -м јсон.оруђеин_филе оут_филе

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