logo

Python — Pretty Print JSON

JSON apzīmē 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' ] }>