Python – Mooie afdruk JSON
JSON betekent J ava S crypt O bject N notatie. Het is een formaat voor het structureren van gegevens. Dit formaat wordt door verschillende webapplicaties gebruikt om met elkaar te communiceren. In dit artikel zullen we leren over JSON Pretty Print
Wat is JSON?
JSON (JavaScript Object Notation) is een op tekst gebaseerd gegevensformaat dat uitwisselbaar is met veel programmeertalen. Het wordt vaak gebruikt voor gegevensoverdracht tussen client-servertoepassingen. Meestal worden verkleinde versies van JSON-tekst verzonden om bandbreedte te besparen. Voor foutopsporing en analyse is echter een verfraaide versie of een mooie print-JSON vereist. In wezen betekent mooie print-JSON dat u de juiste inspringing, witruimte en scheidingstekens heeft.
Voorbeeld:
Input: '[ {'studentid': 1, 'name': 'ABC', 'subjects': ['Python', 'Data Structures']}]' Output: [ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] } ] json.dumps() in Python
Gebruik eerst de methode json.loads() om JSON String naar te converteren Python voorwerp. Om dit object naar een mooie JSON-string te converteren, wordt de methode json.dumps() gebruikt. Hieronder vindt u voorbeelden en stappen om deze gevallen beter te begrijpen.
Syntaxis: json.dumps(obj, streepje, scheidingsteken)
Parameter:
- obj: Serialiseer obj als een JSON-geformatteerde stream
- inspringen: Als inspringen een niet-negatief geheel getal of een tekenreeks is, worden JSON-array-elementen en objectleden mooi afgedrukt met dat inspringingsniveau. Een inspringniveau van 0, negatief of zal alleen nieuwe regels invoegen.
- scheidingstekens: Indien opgegeven, moeten scheidingstekens een (item_separator, key_separator) tupel zijn.
Mooie afdruk JSON-tekenreeks
Deze methode heeft de parameter indent om het aantal spaties op te geven en een separatorparameter om het scheidingsteken tussen sleutel en waarde op te geven. Het scheidingsteken is standaard een komma tussen sleutel-waardeparen en een dubbele punt tussen sleutel en waarde. Als de parameter indent van json.dumps() negatief, 0 of een lege tekenreeks is, zijn er geen inspringingen en worden er alleen nieuwe regels ingevoegd. Standaard is de inspringing Geen en worden de gegevens op één regel weergegeven.
De code neemt een JSON-tekenreeks met leerlingrecords, parseert deze in een Python-gegevensstructuur en drukt vervolgens de JSON-gegevens mooi af met de juiste inspringing voor een betere leesbaarheid.
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)> |
Uitgang:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ] Pretty-Printed JSON-gegevens in een bestand met streepje=0 .
De code neemt een JSON-tekenreeks met leerlingrecords, parseert deze in een Python-gegevensstructuur en drukt vervolgens de JSON-gegevens mooi af zonder inspringing, waardoor deze compact en minder leesbaar worden.
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)> |
Uitgang:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ] Schrijf Pretty Print JSON-gegevens naar een bestand
Om een Python-object als JSON Pretty Print-formaatgegevens naar een bestand te schrijven, wordt de methode json.dump() gebruikt. Net als de methode json.dumps() heeft deze de parameters voor inspringingen en scheidingstekens om verfraaide JSON te schrijven.
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> )> |
Uitgang:
bestandsnaam.json
JSON-gegevens lezen en deze mooi afdrukken
Gebruik json.load() om JSON uit een bestand of URL te lezen. Gebruik vervolgens json.dumps() om het object (verkregen door het lezen van het bestand) te converteren naar een mooie JSON-tekenreeks.
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)> |
Uitgang:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ] Gebruik makend van pprint-module naar Pretty-print JSON om ons JSON-formaat af te drukken
Deze code leest JSON-gegevens uit een bestand met de naam test.json, parseert deze in een Python-gegevensstructuur en drukt deze vervolgens af met behulp van zowel de ingebouwde print> functie en de pprint> module. De pprint> module wordt gebruikt om de JSON-gegevens mooi af te drukken met specifieke opmaakopties zoals een inspringing van 2, een lijnbreedte van 30 tekens en een compacte weergave.
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)> |
Uitgang:
{'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 vanaf de opdrachtregel
In dit voorbeeld proberen we gegevens af te drukken via de opdrachtregel. Om JSON-objecten vanaf de opdrachtregel te valideren en mooi af te drukken, biedt Python het json.tool-pakket.
Python3
echo {> 'studentid'> :> 1> ,> 'name'> :> 'ABC'> ,> > 'subjects'> : [> 'Python'> ,> 'Data Structures'> ]} | python> -> m json.tool> |
Uitgang:
{ 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }