logo

Python: bella stampa JSON

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