logo

Python – Pretty Print JSON

JSON står för J ava S krypta O bject N otation. Det är ett format för att strukturera data. Detta format används av olika webbapplikationer för att kommunicera med varandra. I den här artikeln kommer vi att lära oss om JSON pretty print

Vad är JSON?

JSON (JavaScript Object Notation) är ett textbaserat dataformat som är utbytbart med många programmeringsspråk. Det används vanligtvis för dataöverföring mellan klient-serverapplikationer. Vanligtvis överförs minifierade versioner av JSON-text för att spara bandbredd. För felsökning och analys krävs dock en förskönad version eller en snygg JSON. I grund och botten innebär pretty print JSON att ha korrekt indrag, vita utrymmen och separatorer.

Exempel:



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

json.dumps() i Python

Använd först metoden json.loads() för att konvertera JSON-strängen till Pytonorm objekt. För att konvertera det här objektet till en snygg JSON-sträng, används metoden json.dumps(). Nedan finns exempel och steg för att bättre förstå dessa fall.

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

Parameter:

  • obj: Serialisera obj som en JSON-formaterad ström
  • indrag: Om indrag är ett icke-negativt heltal eller en sträng, kommer JSON-matriselement och objektmedlemmar att skrivas ut med den indragsnivån. En indragsnivå på 0, negativ, eller kommer bara att infoga nyrader.
  • separatorer: Om det anges ska avgränsare vara en (artikelseparator, nyckelseparator) tupel.

Pretty Print JSON String

Den här metoden har parameterinddraget för att ange antalet mellanslag och en separatorparameter för att specificera avgränsaren mellan nyckel och värde. Som standard är avgränsaren ett kommatecken mellan nyckel-värdepar och ett kolon mellan nyckel och värde. Om indragsparametern för json.dumps() är negativ, 0 eller en tom sträng, så finns det inga indrag och endast nyrader infogas. Som standard är indraget Ingen och data representeras på en enda rad.

Koden tar en JSON-sträng som innehåller studentposter, analyserar den till en Python-datastruktur och skriver sedan ut JSON-data med rätt indrag för förbättrad läsbarhet.

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

>

>

Produktion:

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

Pretty-Printed JSON-data till en fil med indrag=0 .

Koden tar en JSON-sträng som innehåller studentposter, analyserar den till en Python-datastruktur och skriver sedan ut JSON-data med noll indrag, vilket gör den kompakt och mindre läsbar.

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

>

>

Produktion:

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

Skriv Pretty Print JSON-data till filen

För att skriva ett Python-objekt som JSON Pretty Print-formatdata till en fil, används metoden json.dump(). Precis som metoden json.dumps() har den indrag och separatorparametrar för att skriva förskönat 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>)>

>

>

Produktion:

filnamn.json

Läser JSON-data och skriver ut det

För att läsa JSON från en fil eller URL, använd json.load(). Använd sedan json.dumps() för att konvertera objektet (erhållet från att läsa filen) till en snygg JSON-sträng.

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

>

>

Produktion:

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

Använder sig av pprint-modul till pretty-print JSON för att skriva ut vårt JSON-format

Den här koden läser JSON-data från en fil som heter test.json, analyserar den till en Python-datastruktur och skriver ut den med både de inbyggdaprint>funktion ochpprint>modul. Depprint>modulen används för att snyggt skriva ut JSON-data med specifika formateringsalternativ som ett indrag på 2, en radbredd på 30 tecken och kompakt representation.

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

>

försök fånga i java
>

Produktion:

{'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 från kommandoraden

I det här exemplet försöker vi skriva ut data med hjälp av kommandoraden. För att validera och snyggt skriva ut JSON-objekt från kommandoraden erbjuder Python paketet json.tool.

Python3




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

>

>

Produktion:

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