logo

Python – Pretty Print JSON

JSON står for J ava S krypt O bject N notasjon. Det er et format for strukturering av data. Dette formatet brukes av forskjellige nettapplikasjoner for å kommunisere med hverandre. I denne artikkelen vil vi lære om JSON pretty print

Hva er JSON?

JSON (JavaScript Object Notation) er et tekstbasert dataformat som kan byttes ut med mange programmeringsspråk. Det brukes ofte for dataoverføring mellom klient-serverapplikasjoner. Vanligvis blir minifiserte versjoner av JSON-tekst overført for å spare båndbredde. For feilsøking og analyse kreves imidlertid en forskjønnet versjon eller en pen JSON. I hovedsak betyr pen print JSON å ha riktig innrykk, mellomrom og skilletegn.

Eksempel:



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

json.dumps() i Python

Bruk først json.loads()-metoden for å konvertere JSON-strengen til Python gjenstand. For å konvertere dette objektet til en pen JSON-streng, brukes json.dumps()-metoden. Nedenfor er eksempler og trinn for å bedre forstå disse tilfellene.

Syntaks: json.dumps(obj, innrykk, skilletegn)

Parameter:

eks av brukernavn
  • obj: Serialiser obj som en JSON-formatert strøm
  • innrykk: Hvis innrykk er et ikke-negativt heltall eller en streng, vil JSON-matriseelementer og objektmedlemmer være pent trykt med det innrykksnivået. Et innrykksnivå på 0, negativ, eller vil bare sette inn nye linjer.
  • separatorer: Hvis spesifisert, skal skilletegn være en (vareseparator, nøkkelseparator) tuppel.

Pretty Print JSON-streng

Denne metoden har parameterinnrykk for å spesifisere antall mellomrom og en skilleparameter for å spesifisere skillet mellom nøkkel og verdi. Som standard er skilletegnet et komma mellom nøkkel-verdi-par og et kolon mellom nøkkel og verdi. Hvis innrykk-parameteren til json.dumps() er negativ, 0 eller en tom streng, er det ingen innrykk og bare nylinjer settes inn. Som standard er innrykk Ingen, og dataene er representert på en enkelt linje.

Koden tar en JSON-streng som inneholder studentposter, analyserer den inn i en Python-datastruktur, og skriver deretter ut JSON-dataene med riktig innrykk for forbedret lesbarhet.

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

>

>

Produksjon:

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

Pretty-Printed JSON-data til en fil med innrykk=0 .

Koden tar en JSON-streng som inneholder studentposter, analyserer den inn i en Python-datastruktur, og skriver deretter ganske ut JSON-dataene med null innrykk, noe som gjør den kompakt og mindre lesbar.

Python3




tilfeldig tall c-kode
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)>

>

>

Produksjon:

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

Skriv Pretty Print JSON-data til filen

For å skrive et Python-objekt som JSON Pretty Print-formatdata til en fil, brukes json.dump()-metoden. I likhet med json.dumps()-metoden har den innrykk og separatorparametere for å skrive forskjønnet 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>)>

c program for strengsammenligning
>

>

Produksjon:

filnavn.json

Leser JSON-data og skriv det ganske ut

For å lese JSON fra en fil eller URL, bruk json.load(). Bruk deretter json.dumps() for å konvertere objektet (oppnådd ved å lese filen) til en pen JSON-streng.

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

>

>

Produksjon:

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

Ved hjelp av pprint-modul til pretty-print JSON for å skrive ut vårt JSON-format

Denne koden leser JSON-data fra en fil som heter test.json, analyserer den inn i en Python-datastruktur og skriver den ut ved å bruke både den innebygdeprint>funksjon ogpprint>modul. Depprint>modulen brukes til å skrive ut JSON-dataene med spesifikke formateringsalternativer som et innrykk på 2, en linjebredde på 30 tegn og kompakt representasjon.

linux kjøre kommando

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

>

>

Produksjon:

{'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 fra kommandolinjen

I dette eksemplet prøver vi å skrive ut data ved å bruke kommandolinjen. For å validere og skrive ut JSON-objekter fra kommandolinjen, tilbyr Python pakken json.tool.

Python3




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

>

json filen
>

Produksjon:

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