Python – Pretty Print JSON

JSON pomeni J ava S kripta O predmet n otacija. Je oblika za strukturiranje podatkov. To obliko uporabljajo različne spletne aplikacije za medsebojno komunikacijo. V tem članku bomo izvedeli o lepem tisku JSON

Kaj je JSON?

JSON (JavaScript Object Notation) je besedilni format podatkov, ki je zamenljiv s številnimi programskimi jeziki. Običajno se uporablja za prenos podatkov med aplikacijami odjemalec-strežnik. Običajno se zaradi varčevanja s pasovno širino prenašajo pomanjšane različice besedila JSON. Vendar pa je za odpravljanje napak in analizo potrebna polepšana različica ali lep tisk JSON. V bistvu lep tisk JSON pomeni pravilno zamikanje, prazne presledke in ločila.

primer:

  Input:   '[ {'studentid': 1, 'name': 'ABC', 'subjects': ['Python', 'Data Structures']}]'   Output:   [ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] } ] 

json.dumps() v Pythonu

Najprej uporabite metodo json.loads() za pretvorbo niza JSON v Python predmet. Za pretvorbo tega predmeta v lepo natisnjen niz JSON se uporabi metoda json.dumps(). Spodaj so primeri in koraki za boljše razumevanje teh primerov.

Sintaksa: json.dumps(obj, zamik, ločilo)

Parameter:

  • predmet: Serializirajte obj kot tok v formatu JSON
  • zamik: Če je zamik nenegativno celo število ali niz, bodo elementi polja JSON in člani objekta lepo natisnjeni s to stopnjo zamika. Raven zamika 0, negativna ali bo vstavila samo nove vrstice.
  • ločila: Če je določeno, morajo biti ločila (ločilo_predmetov, ločilo_ključev) torka.

Pretty Print JSON String

Ta metoda ima parameter indent za določanje števila presledkov in parameter ločilo za določanje ločila med ključem in vrednostjo. Privzeto je ločilo vejica med pari ključ-vrednost in dvopičje med ključem in vrednostjo. Če je parameter zamika json.dumps() negativen, 0 ali prazen niz, potem ni zamikov in so vstavljene samo nove vrstice. Privzeto je zamik Brez in podatki so predstavljeni v eni vrstici.

Koda vzame niz JSON, ki vsebuje zapise o učencih, ga razčleni v podatkovno strukturo Python, nato pa lepo natisne podatke JSON s pravilnim zamikom za izboljšano berljivost.

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> => 4> )> print> (json_formatted_str)>

Izhod:

[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ] 

Lepo natisnjeni podatki JSON v datoteko z alinea=0 .

Koda vzame niz JSON, ki vsebuje zapise študentov, ga razčleni v podatkovno strukturo Python in nato lepo natisne podatke JSON z ničelnim zamikom, zaradi česar so kompaktni in manj berljivi.

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)>

Izhod:

[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ] 

Zapišite podatke Pretty Print JSON v datoteko

Za pisanje predmeta Python kot podatke v formatu JSON Pretty Print v datoteko se uporabi metoda json.dump(). Tako kot metoda json.dumps() ima zamike in parametre ločil za pisanje polepšanega JSON.

Python3




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> )>

Izhod:

ime datoteke.json

Branje podatkov JSON in lepo tiskanje

Za branje JSON iz datoteke ali URL-ja uporabite json.load(). Nato uporabite json.dumps() za pretvorbo predmeta (pridobljenega z branjem datoteke) v lepo natisnjen niz JSON.

Python3




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)>

Izhod:

[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ] 

Uporaba pprint modul za lepo tiskanje JSON za tiskanje našega formata JSON

Ta koda prebere podatke JSON iz datoteke, imenovane test.json, jih razčleni v podatkovno strukturo Python in jih nato natisne z uporabo obeh vgrajenih print> funkcijo in pprint> modul. The pprint> modul se uporablja za lepo tiskanje podatkov JSON s posebnimi možnostmi oblikovanja, kot so zamik 2, širina vrstice 30 znakov in kompaktna predstavitev.

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)>

Izhod:

{'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 iz ukazne vrstice

V tem primeru poskušamo natisniti podatke z ukazno vrstico. Za preverjanje in lepo tiskanje objektov JSON iz ukazne vrstice Python ponuja paket json.tool.

Python3




echo {> 'studentid'> :> 1> ,> 'name'> :> 'ABC'> ,> > 'subjects'> : [> 'Python'> ,> 'Data Structures'> ]} | python> -> m json.tool>

Izhod:

{ 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }