JSON apzīmē Dž ava S kapenes O objekts N otācija. Tas ir datu strukturēšanas formāts. Šo formātu izmanto dažādas tīmekļa lietojumprogrammas, lai sazinātos savā starpā. Šajā rakstā mēs uzzināsim par JSON pretty print
Kas ir JSON?
JSON (JavaScript Object Notation) ir uz tekstu balstīts datu formāts, kas ir aizstājams ar daudzām programmēšanas valodām. To parasti izmanto datu pārraidei starp klienta-servera lietojumprogrammām. Parasti, lai taupītu joslas platumu, tiek pārsūtītas samazinātas JSON teksta versijas. Tomēr, lai veiktu atkļūdošanu un analīzi, ir nepieciešama uzlabota versija vai jauks drukas JSON. Būtībā glīts JSON izdrukas nozīmē pareizu atkāpi, atstarpi un atdalītājus.
Piemērs:
Input: '[ {'studentid': 1, 'name': 'ABC', 'subjects': ['Python', 'Data Structures']}]' Output: [ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] } ]> json.dumps() programmā Python
Vispirms izmantojiet metodi json.loads(), lai pārveidotu JSON virkni par Python objektu. Lai šo objektu pārvērstu par skaistu drukātu JSON virkni, tiek izmantota metode json.dumps(). Tālāk ir sniegti piemēri un darbības, lai labāk izprastu šos gadījumus.
Sintakse: json.dumps(obj, atkāpe,atdalītājs)
Parametrs:
- obj: Serializējiet obj kā JSON formatētu straumi
- ievilkums: Ja atkāpe ir nenegatīvs vesels skaitlis vai virkne, tad JSON masīva elementi un objektu dalībnieki tiks izdrukāti ar šo atkāpes līmeni. Atkāpes līmenis ir 0, negatīvs vai tiks ievietotas tikai jaunas rindiņas.
- atdalītāji: Ja norādīts, atdalītājiem ir jābūt (item_separator, key_separator) kortei.
Pretty Print JSON virkne
Šai metodei ir parametra atkāpe, lai norādītu atstarpju skaitu, un atdalītāja parametrs, lai norādītu atdalītāju starp atslēgu un vērtību. Pēc noklusējuma atdalītājs ir komats starp atslēgu un vērtību pāriem un kols starp atslēgu un vērtību. Ja json.dumps() atkāpes parametrs ir negatīvs, 0 vai tukša virkne, tad atkāpju nav un tiek ievietotas tikai jaunas rindiņas. Pēc noklusējuma atkāpe ir Nav, un dati tiek attēloti vienā rindā.
Kods ņem JSON virkni, kurā ir studentu ieraksti, parsē to Python datu struktūrā un pēc tam glīti izdrukā JSON datus ar atbilstošu atkāpi, lai uzlabotu lasāmību.
Python3
daļēja diferenciācija lateksā
import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> 'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>4>)> print>(json_formatted_str)> |
>
>
Izvade:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> Diezgan izdrukāti JSON dati failā ar atkāpe=0 .
Kods ņem JSON virkni, kurā ir studentu ieraksti, parsē to Python datu struktūrā un pēc tam glīti izdrukā JSON datus ar nulles atkāpi, padarot tos kompaktus un mazāk lasāmus.
Python3
import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>0>)> print>(json_formatted_str)> |
>
>
Izvade:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> Ierakstiet Pretty Print JSON datus failā
Lai rakstītu Python objektu kā JSON Pretty Print formāta datus failā, tiek izmantota metode json.dump(). Tāpat kā json.dumps() metodei, tai ir atkāpes un atdalītāju parametri, lai rakstītu izdaiļotu JSON.
Python3
virkne char
import> json> data>=> [{>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]}]> with>open>(>'filename.json'>,>'w'>) as write_file:> >json.dump(data, write_file, indent>=>4>)> |
>
>
Izvade:
faila nosaukums.json
JSON datu lasīšana un skaista izdrukāšana
Lai lasītu JSON no faila vai URL, izmantojiet json.load(). Pēc tam izmantojiet json.dumps(), lai objektu (kas iegūts, nolasot failu) pārvērstu par skaistu drukātu JSON virkni.
Python3
kas ir 10 no 100
import> json> with>open>(>'filename.json'>,>'r'>) as read_file:> > >obj>=> json.load(read_file)> >pretty_json>=> json.dumps(obj, indent>=>4>)> >print>(pretty_json)> |
>
>
Izvade:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> Izmantojot pprint modulis uz pretty-print JSON lai izdrukātu mūsu JSON formātu
Šis kods nolasa JSON datus no faila test.json, parsē tos Python datu struktūrā un pēc tam izdrukā, izmantojot gan iebūvēto.print>funkcija unpprint>modulis. Thepprint>modulis tiek izmantots, lai glīti izdrukātu JSON datus ar īpašām formatēšanas opcijām, piemēram, atkāpi 2, līnijas platumu 30 rakstzīmes un kompaktu attēlojumu.
Python3
import> json> import> pprint> with>open>(>'test.json'>,>'r'>) as json_data:> >student>=> json.load(json_data)> >print>(student)> >print>(>'
'>)> pp>=> pprint.PrettyPrinter(indent>=>2>, width>=>30>, compact>=>True>)> print>(>'Pretty Printing using pprint module'>)> pp.pprint(student)> |
virknes līdz veseliem skaitļiem
>
>
Izvade:
{'Teacher_id': 1, 'name': 'Suraj', 'Salary': 50000, 'attendance': 80, 'Branch': ['English', 'Geometry', 'Physics', 'World History'], 'email': '[email protected]'} Pretty Printing using pprint module ('{'Teacher_id': 1, 'name': ' ''Suraj', 'Salary': 50000, ' ''attendance': 80, ' ''Branch': ['English', ' ''Geometry', 'Physics', ' ''World History'], 'email': ' ''[email protected]'}')> Pretty print JSON no komandrindas
Šajā piemērā mēs cenšamies izdrukāt datus, izmantojot komandrindu. Lai pārbaudītu un glīti izdrukātu JSON objektus no komandrindas, Python piedāvā pakotni json.tool.
Python3
echo {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]} | python>->m json.tool> |
>
>
Izvade:
{ 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }>