logo

Python – Pretty Print JSON

JSON znamená J ava S krypta Ó bject N otace. Je to formát pro strukturování dat. Tento formát používají různé webové aplikace ke vzájemné komunikaci. V tomto článku se dozvíme o pěkném tisku JSON

Co je JSON?

JSON (JavaScript Object Notation) je textový datový formát, který je zaměnitelný s mnoha programovacími jazyky. Běžně se používá pro přenos dat mezi aplikacemi klient-server. Obvykle se z důvodu úspory šířky pásma přenášejí minifikované verze textu JSON. Pro ladění a analýzu je však vyžadována zkrášlená verze nebo pěkně vytištěný JSON. Pěkný tisk JSON v podstatě znamená správné odsazení, mezery a oddělovače.

Příklad:



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

json.dumps() v Pythonu

Nejprve pomocí metody json.loads() převeďte řetězec JSON na Krajta objekt. K převodu tohoto objektu na pěkný tištěný řetězec JSON se používá metoda json.dumps(). Níže jsou uvedeny příklady a kroky k lepšímu pochopení těchto případů.

Syntax: json.dumps(obj, odrážka, oddělovač)

Parametr:

  • obj: Serializujte obj jako stream ve formátu JSON
  • Odrážka: Pokud je odsazení nezáporné celé číslo nebo řetězec, prvky pole JSON a členové objektu budou pěkně vytištěny s touto úrovní odsazení. Úroveň odsazení 0, záporná nebo vloží pouze nové řádky.
  • oddělovače: Je-li zadáno, oddělovače by měly být (item_separator, key_separator) n-tice.

Pretty Print JSON String

Tato metoda má parametr odsazení, který určuje počet mezer, a parametr oddělovače, který určuje oddělovač mezi klíčem a hodnotou. Ve výchozím nastavení je oddělovač čárka mezi páry klíč–hodnota a dvojtečka mezi klíčem a hodnotou. Pokud je parametr odsazení funkce json.dumps() záporný, 0 nebo prázdný řetězec, pak nejsou žádná odsazení a vkládají se pouze nové řádky. Ve výchozím nastavení je odsazení None a data jsou reprezentována na jednom řádku.

Kód vezme řetězec JSON obsahující záznamy studentů, analyzuje jej do datové struktury Pythonu a poté pěkně vytiskne data JSON se správným odsazením pro lepší čitelnost.

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

>

>

Výstup:

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

Pěkně vytištěná data JSON do souboru s odsazení=0 .

Kód vezme řetězec JSON obsahující záznamy studentů, analyzuje jej do datové struktury Pythonu a poté pěkně vytiskne data JSON s nulovým odsazením, díky čemuž jsou kompaktní a méně čitelná.

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ýstup:

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

Zapište data Pretty Print JSON do souboru

Chcete-li zapsat objekt Python jako data formátu JSON Pretty Print do souboru, použije se metoda json.dump(). Stejně jako metoda json.dumps() má parametry odsazení a oddělovače pro zápis zkrášleného JSON.

převod řetězce na int java

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ýstup:

název_souboru.json

Čtení dat JSON a pěkně si je vytiskněte

Chcete-li číst JSON ze souboru nebo adresy URL, použijte json.load(). Potom pomocí json.dumps() převeďte objekt (získaný čtením souboru) na pěkný tištěný řetězec 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ýstup:

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

Použitím modul pprint pro pěkný tisk JSON pro tisk našeho formátu JSON

Tento kód čte data JSON ze souboru s názvem test.json, analyzuje je do datové struktury Pythonu a poté je vytiskne pomocí obou vestavěnýchprint>funkce apprint>modul. Thepprint>modul se používá k pěknému tisku dat JSON se specifickými možnostmi formátování, jako je odsazení 2, šířka řádku 30 znaků a kompaktní reprezentace.

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

>

>

Výstup:

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

Pěkně tiskněte JSON z příkazového řádku

V tomto příkladu se snažíme tisknout data pomocí příkazového řádku. Pro ověření a vytištění objektů JSON z příkazového řádku nabízí Python balíček json.tool.

Python3




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

>

>

Výstup:

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