logo

Python – Pretty Print JSON

JSON står for J ava S krypt O bject N notation. Det er et format til strukturering af data. Dette format bruges af forskellige webapplikationer til at kommunikere med hinanden. I denne artikel lærer vi om JSON pretty print

Hvad er JSON?

JSON (JavaScript Object Notation) er et tekstbaseret dataformat, der kan udskiftes med mange programmeringssprog. Det bruges almindeligvis til datatransmission mellem klient-server-applikationer. Normalt overføres minificerede versioner af JSON-tekst for at spare båndbredde. Til fejlretning og analyse kræves der dog en forskønnet version eller en smuk print JSON. I det væsentlige betyder smuk print JSON at have korrekt indrykning, hvide mellemrum og separatorer.

Eksempel:



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

json.dumps() i Python

Først skal du bruge metoden json.loads() til at konvertere JSON-strengen til Python objekt. For at konvertere dette objekt til en smuk print JSON-streng, bruges json.dumps() metoden. Nedenfor er eksempler og trin til bedre at forstå disse sager.

Syntaks: json.dumps(obj, indrykning, adskiller)

Parameter:

hvordan man kører et script på linux
  • obj: Serialiser obj som en JSON-formateret stream
  • indrykning: Hvis indrykning er et ikke-negativt heltal eller streng, vil JSON-array-elementer og objektmedlemmer blive udskrevet pænt med det indrykningsniveau. Et indrykningsniveau på 0, negativt, eller vil kun indsætte nye linjer.
  • separatorer: Hvis det er angivet, skal separatorer være en (item_separator, key_separator) tuple.

Pretty Print JSON String

Denne metode har parameterindrykningen til at angive antallet af mellemrum og en separatorparameter til at angive separatoren mellem nøgle og værdi. Som standard er separatoren et komma mellem nøgle-værdi-par og et kolon mellem nøgle og værdi. Hvis indrykningsparameteren for json.dumps() er negativ, 0 eller en tom streng, er der ingen indrykning, og kun nye linjer indsættes. Som standard er indrykket Ingen, og dataene er repræsenteret på en enkelt linje.

Koden tager en JSON-streng, der indeholder elevposter, parser den ind i en Python-datastruktur og udskriver derefter JSON-dataene med korrekt indrykning for forbedret læsbarhed.

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 i en fil med indrykning=0 .

Koden tager en JSON-streng, der indeholder elevposter, parser den ind i en Python-datastruktur og udskriver derefter JSON-dataene smukt med nul indrykning, hvilket gør dem kompakte og mindre læsbare.

Python3




strukturer ved hjælp af arrays i c
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 til fil

For at skrive et Python-objekt som JSON Pretty Print-formatdata til en fil, bruges json.dump()-metoden. Ligesom metoden json.dumps() har den indrykning og separatorparametre til at skrive forskø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>)>

gimp hvordan man fravælger
>

>

Produktion:

filnavn.json

Læser JSON-data og print det pænt

For at læse JSON fra en fil eller URL skal du bruge json.load(). Brug derefter json.dumps() til at konvertere objektet (opnået ved at læse filen) til en smuk print 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)>

>

>

Produktion:

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

Ved brug af pprint-modul til pretty-print JSON for at udskrive vores JSON-format

Denne kode læser JSON-data fra en fil kaldet test.json, parser dem til en Python-datastruktur og udskriver dem derefter ved hjælp af både den indbyggedeprint>funktion ogpprint>modul. Detpprint>modul bruges til at udskrive JSON-dataene med specifikke formateringsmuligheder som en indrykning på 2, en linjebredde på 30 tegn og kompakt repræsentation.

linux kørselskommando

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

>

>

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

I dette eksempel forsøger vi at udskrive data ved hjælp af kommandolinjen. For at validere og smukt printe JSON-objekter fra kommandolinjen tilbyder Python pakken json.tool.

Python3




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

>

json filen
>

Produktion:

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