JSON sta per J ava S cripta O oggetto N otazione. È un formato per strutturare i dati. Questo formato viene utilizzato da diverse applicazioni Web per comunicare tra loro. In questo articolo impareremo a conoscere JSON Pretty Print
Cos'è JSON?
JSON (JavaScript Object Notation) è un formato dati basato su testo intercambiabile con molti linguaggi di programmazione. Viene comunemente utilizzato per la trasmissione di dati tra applicazioni client-server. Di solito, vengono trasmesse versioni minimizzate del testo JSON per risparmiare larghezza di banda. Tuttavia, per il debug e l'analisi, è necessaria una versione abbellita o un bel JSON stampato. In sostanza, un JSON di stampa gradevole significa avere rientro, spazi bianchi e separatori corretti.
Esempio:
connessioni in Java
Input: '[ {'studentid': 1, 'name': 'ABC', 'subjects': ['Python', 'Data Structures']}]' Output: [ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] } ]>
json.dumps() in Python
Innanzitutto, utilizza il metodo json.loads() per convertire la stringa JSON in Pitone oggetto. Per convertire questo oggetto in una bella stringa JSON stampata, viene utilizzato il metodo json.dumps(). Di seguito sono riportati esempi e passaggi per comprendere meglio questi casi.
Sintassi: json.dumps(oggetto, rientro, separatore)
Parametro:
- oggetto: Serializza obj come flusso formattato JSON
- trattino: Se il rientro è un numero intero o una stringa non negativo, gli elementi dell'array JSON e i membri dell'oggetto verranno stampati con quel livello di rientro. Un livello di rientro pari a 0, negativo o inserirà solo nuove righe.
- separatori: Se specificati, i separatori dovrebbero essere una tupla (item_separator, key_separator).
Stringa JSON con stampa graziosa
Questo metodo ha il parametro indent per specificare il numero di spazi e un parametro separator per specificare il separatore tra chiave e valore. Per impostazione predefinita, il separatore è una virgola tra le coppie chiave-valore e i due punti tra chiave e valore. Se il parametro di rientro di json.dumps() è negativo, 0 o una stringa vuota, non ci sono rientri e vengono inseriti solo i ritorni a capo. Per impostazione predefinita, il rientro è Nessuno e i dati sono rappresentati su un'unica riga.
Il codice prende una stringa JSON contenente i record degli studenti, la analizza in una struttura dati Python, quindi stampa i dati JSON con il rientro corretto per una migliore leggibilità.
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)> |
>
>
Produzione:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]>
Dati JSON piuttosto stampati in un file con rientro=0 .
Il codice prende una stringa JSON contenente i record degli studenti, la analizza in una struttura dati Python e quindi stampa i dati JSON senza rientro, rendendoli compatti e meno leggibili.
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)> |
altalena Java
>
>
Produzione:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]>
Scrivi i dati JSON Pretty Print su file
Per scrivere un oggetto Python come dati in formato JSON Pretty Print in un file, viene utilizzato il metodo json.dump(). Come il metodo json.dumps(), ha i rientri e i parametri separatori per scrivere JSON abbellito.
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> )> |
dijkstra
>
>
Produzione:
nomefile.json
Leggere i dati JSON e stamparli piuttosto
Per leggere JSON da un file o URL, utilizzare json.load(). Quindi usa json.dumps() per convertire l'oggetto (ottenuto dalla lettura del file) in una bella stringa JSON stampata.
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)> |
>
polimorfismo in Java
>
Produzione:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]>
Utilizzando modulo pprint per stampare in modo carino JSON per stampare il nostro formato JSON
Questo codice legge i dati JSON da un file chiamato test.json, li analizza in una struttura dati Python e quindi li stampa utilizzando sia il metodo integratoprint>
funzione e ilpprint>
modulo. ILpprint>
Il modulo viene utilizzato per stampare in modo gradevole i dati JSON con opzioni di formattazione specifiche come un rientro di 2, una larghezza di riga di 30 caratteri e una rappresentazione compatta.
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)> |
>
>
Produzione:
{'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]'}')>
JSON piuttosto stampato dalla riga di comando
In questo esempio, stiamo provando a stampare i dati utilizzando la riga di comando. Per convalidare e stampare in modo gradevole gli oggetti JSON dalla riga di comando, Python offre il pacchetto json.tool.
Python3
echo {> 'studentid'> :> 1> ,> 'name'> :> 'ABC'> ,> > 'subjects'> : [> 'Python'> ,> 'Data Structures'> ]} | python> -> m json.tool> |
>
stato git
>
Produzione:
{ 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }>