logo

Python – Pretty Print JSON

JSON znamenať J ava S krypta O bject N otation. Je to formát na štruktúrovanie údajov. Tento formát používajú rôzne webové aplikácie na vzájomnú komunikáciu. V tomto článku sa dozvieme o peknej tlači JSON

Čo je JSON?

JSON (JavaScript Object Notation) je textový dátový formát, ktorý je zameniteľný s mnohými programovacími jazykmi. Bežne sa používa na prenos dát medzi aplikáciami klient-server. Minifikované verzie textu JSON sa zvyčajne prenášajú, aby sa ušetrila šírka pásma. Na ladenie a analýzu je však potrebná skrášlená verzia alebo pekný tlačený JSON. Pekná tlač JSON v podstate znamená správne odsadenie, biele miesta a oddeľovače.

Príklad:



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

json.dumps() v Pythone

Najprv použite metódu json.loads() na konverziu reťazca JSON Python objekt. Na konverziu tohto objektu na pekný tlačený reťazec JSON sa používa metóda json.dumps(). Nižšie sú uvedené príklady a kroky na lepšie pochopenie týchto prípadov.

Syntax: json.dumps(obj, indent,separator)

Parameter:

  • obj: Serializujte obj ako stream vo formáte JSON
  • zarážka: Ak je odsadenie nezáporné celé číslo alebo reťazec, prvky poľa JSON a členovia objektu budú pekne vytlačené s touto úrovňou odsadenia. Úroveň odsadenia 0, záporná alebo vloží iba nové riadky.
  • oddeľovače: Ak je zadaný, oddeľovače by mali byť (oddeľovač_položiek, oddeľovač_kľúčov) n-tica.

Pretty Print JSON String

Táto metóda má parameter odsadenie na určenie počtu medzier a parameter oddeľovača na určenie oddeľovača medzi kľúčom a hodnotou. V predvolenom nastavení je oddeľovač čiarka medzi pármi kľúč – hodnota a dvojbodka medzi kľúčom a hodnotou. Ak je parameter odsadenia funkcie json.dumps() záporný, 0 alebo prázdny reťazec, potom nie sú žiadne zarážky a vkladajú sa iba nové riadky. V predvolenom nastavení je zarážka Žiadna a údaje sú zobrazené v jednom riadku.

Kód vezme reťazec JSON obsahujúci záznamy študentov, analyzuje ho do dátovej štruktúry Pythonu a potom pekne vytlačí údaje JSON so správnym odsadením, aby sa zlepšila čitateľnosť.

Python3


mylivecricket.



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

>

>

Výkon:

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

Pekne vytlačené údaje JSON do súboru s zarážka=0 .

Kód vezme reťazec JSON obsahujúci záznamy študentov, analyzuje ho do dátovej štruktúry Pythonu a potom pekne vytlačí dáta JSON s nulovým odsadením, vďaka čomu sú kompaktné a menej čitateľné.

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

>

>

Výkon:

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

Zapíšte si údaje JSON Pretty Print do súboru

Na zapísanie objektu Python ako údajov formátu JSON Pretty Print do súboru sa používa metóda json.dump(). Podobne ako metóda json.dumps() má parametre odsadenia a oddeľovača na zápis skrášleného 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>)>

>

>

Výkon:

názov_súboru.json

Čítanie údajov JSON a ich tlač

Ak chcete prečítať JSON zo súboru alebo adresy URL, použite json.load(). Potom použite json.dumps() na konverziu objektu (získaného z čítania súboru) na pekný tlačený reťazec 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)>

>

>

Výkon:

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

Použitím modul pprint na peknú tlač JSON na tlač nášho formátu JSON

Tento kód číta údaje JSON zo súboru s názvom test.json, analyzuje ich do dátovej štruktúry Pythonu a potom ich vytlačí pomocou vstavanýchprint>funkcia apprint>modul. Thepprint>modul sa používa na peknú tlač údajov JSON so špecifickými možnosťami formátovania, ako je odsadenie 2, šírka riadku 30 znakov a kompaktná reprezentácia.

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

>

hashmap v jave

>

Výkon:

{'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]'}')>

Pekne vytlačte JSON z príkazového riadku

V tomto príklade sa pokúšame vytlačiť dáta pomocou príkazového riadku. Na overenie a peknú tlač objektov JSON z príkazového riadku ponúka Python balík json.tool.

Python3




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

>

>

Výkon:

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