Kā lasīt un rakstīt Json failus Python

How Read Write Json Files Python



Šajā rakstā tiks paskaidrots, kā rīkoties ar JSON failiem un datiem Python programmēšanas valodā. Python ir aprīkots ar iebūvētu json moduli, kas padara JSON datu apstrādi vieglu un vienkāršu.

Par JSON

JSON (JavaScript Object Notation) ir faila formāts un datu glabāšanas standarts, kas izmanto atslēgu un vērtību pārus datu glabāšanai un apmaiņai. Tas ir visplašāk izmantotais datu apmaiņas formāts, kas bieži redzams RESTful API, vieglajās datu bāzēs, konfigurācijas failos un citā bezsaistes vai tiešsaistes programmatūrā, kurai ir nepieciešams uzglabāt, izgūt un apmainīties ar datiem. Lielākajā daļā programmēšanas valodu ir bibliotēkas, lai pēc noklusējuma parsētu un rakstītu JSON datus, un JSON ir programmēšanas valodas agnostiķu datu formāts. JSON failā vai lietderīgajā kravā saglabātās vērtības parasti satur virknes, ciparus un sērijveidojamus datu veidus, piemēram, sarakstus (masīvus).







JSON un Python vārdnīcas

JSON dati python tiek pārvērsti vārdnīcas objektā, izmantojot ielādes metodi. Bieži redzams, ka daži cilvēki pielīdzina json datus un pitona vārdnīcu, jo sintakse abu definēšanai ir gandrīz vienāda. Tomēr json dati ir nekas cits kā teksta virkne, kas strukturēta stingrā sintaksē, savukārt python vārdnīca ir atmiņā saglabāts datu struktūras objekts. Ja vēlaties vārdnīcas datus saglabāt teksta failā vai nosūtīt citai programmai, kas nav python, vispirms tie būs jāpārvērš teksta virknē (baitos). Šī dempinga / konvertētā teksta virkne ir definēta JSON standarta sintaksē, un procesu, kurā python vārdnīca tiek pārveidota ar json saderīgā virknē, sauc par serializāciju.



JSON datu lasīšana un dempings Python

JSON datus var izgūt kā atbildes veidlapu no servera, nolasīt no faila, sagriezt pēc URL vaicājuma parametriem un tā tālāk. Šajā rakstā galvenā uzmanība tiks pievērsta json datu lasīšanai no lokāli saglabāta faila. Pieņemsim, ka test.json failā ir šādi dati:



{'codename': 'Eoan Ermine', 'versija': 'Ubuntu 19.10'}

Lai lasītu test.json failu python, varat izmantot tālāk norādīto kodu.





importētjson

ar atvērts ('test.json') f:
dati=json.slodze(f)

izgāztuve=json.izgāztuves(dati)

drukāt (dati)
drukāt (tipa(dati))
drukāt (izgāztuve)
drukāt (tipa(izgāztuve))

Iepriekš minētā koda pirmā rinda importē json moduli. Nākamajā rindā ar atvērtu tiek izmantota, lai droši izlasītu faila saturu. Ar atvērtu bloku json.load metode tiek izmantota, lai lasītu un saglabātu faila saturu datu mainīgajā. Iepriekšējā solī ielādētie dati tiek pārvērsti atpakaļ json virknē, izmantojot metodi json.dump. Palaižot iepriekš minēto kodu, tiks parādīta šāda izvade:

{'koda vārds':'Eoan Ermine', 'versija':'Ubuntu 19.10'}
<klase 'dikti'>
{'koda vārds':'Eoan Ermine', 'versija':'Ubuntu 19.10'}
<klase 'str'>

Ievērojiet iepriekšējā izvadē, ka metode json.load lasa neapstrādātus json datus python vārdnīcā, savukārt json.dumps metodes vārdnīcu pārvērš virknē, kas ir saderīga ar JSON struktūru. Kad JSON objekts ir pārvērsts par python vārdnīcas objektu, datu apstrādei varat izmantot iebūvētās python vārdnīcas metodes. Iepriekš minētais piemērs ir diezgan vienkāršs un neietver masīvus JSON datos vai ligzdotās vērtībās. Tomēr python sistēmā jūs varat rīkoties ar šīm vērtībām tāpat kā ar citām ligzdotām vārdnīcām un sarakstiem.



JSON datu šķirošana un diezgan drukāšana

Metode json.dump atbalsta dažus izvēles parametrus, lai kārtotu atslēgas un skaisti izdrukātu izvadi, lai uzlabotu lasāmību.

importētjson

ar atvērts ('test.json') f:
dati=json.slodze(f)

izgāztuve=json.izgāztuves(dati,sort_keys=Taisnība,atkāpe=4)
drukāt (izgāztuve)

Iepriekš redzamais kods parādīs šādu izvadi:

{
'kods': 'Eoan Ermine',
'versija': 'Ubuntu 19.10'
}

Datu veidu reklāmguvumi

Zemāk redzamais saraksts parāda, kā JSON vērtības tiek pārvērstas par python objektiem un otrādi.

JSON Python
virkne lpp
numurs int vai pludiņš
patiess, nepatiess Tiesa, nepatiesa
null Nav
masīvs sarakstu
objekts dikti

Json.tool komandrindas modulis

Python ietver jauku komandrindas utilītu json.tool, ko var izmantot, lai apstiprinātu un skaisti izdrukātu JSON virknes un failus.

$ echo'{' codename ':' Eoan Ermine ',' versija ':' Ubuntu 19.10 '}'| python3 -m json.rīks

Izpildot iepriekš minēto komandu, tiks parādīts šāds rezultāts:

{
'kods': 'Eoan Ermine',
'versija': 'Ubuntu 19.10'
}

Jūs varat arī izmantot json.tool ar JSON failiem. Aizstājiet in_file un out_file zemāk esošajā komandā ar vēlamajām vērtībām:

$ python3 -m json.rīksin_file out_file

Izņemot skaisto JSON datu drukāšanu, kārtošanu un apstiprināšanu, json.tool nedara neko citu. Tātad, ja vēlaties manipulēt ar JSON datiem, jums ir jāraksta savs pielāgotais kods, izmantojot iebūvēto JSON moduli.