Hoe u een JSON-bestand mooi kunt afdrukken

  1. json.dumps Methode
  2. pprint Methode

De inhoud van het JSON-bestand kan rommelig zijn als u het naar de string of load het leest.

In één JSON-bestand bijvoorbeeld

[{"foo": "Etiam", "bar": ["rhoncus", 0, "1.0"]}]

Als jij load en dan print het.

import json

with open(r'C:\test\test.json', 'r') as f:
    json_data = json.load(f)
    
print(json_data)
[{'foo': 'Etiam', 'bar': ['rhoncus', 0, '1.0']}]

Het resultaat is goed leesbaar in vergelijking met het standaardformaat dat we normaal zien.

[
  {
    "foo": "Etiam",
    "bar": [
      "rhoncus",
      0,
      "1.0"
    ]
  }
]

json.dumps Methode

json.dumps() functie serialiseert het gegeven obj aan een JSON geformatteerd str.

We moeten een positief geheel getal geven aan de trefwoordparameter indent in de json.dumps() functie om het obj met het gegeven inspringniveau mooi af te drukken . Als ident is ingesteld op 0, worden alleen nieuwe regels ingevoegd.

import json

with open(r'C:\test\test.json', 'r') as f:
    json_data = json.load(f)
    
print(json.dumps(json_data, indent=2))
[
  {
    "foo": "Etiam",
    "bar": [
      "rhoncus",
      0,
      "1.0"
    ]
  }
]

pprint Methode

pprint module biedt de mogelijkheid om Python-datastructuren mooi af te drukken. pprint.pprint pretty drukt een Python-object af op een stream gevolgd door een nieuwe regel.

import json
import pprint

with open(r'C:\test\test.json', 'r') as f:
    json_data = f.read()
    json_data = json.loads(json_data)
    
pprint.pprint(json_data)

De inhoud van het JSON-bestand wordt behoorlijk afgedrukt. En je kan het inspringen ook definiëren door een indent parameter toe te wijzen.

pprint.pprint(json_data, indent=2)

Aandacht

pprint behandelt enkele ' en dubbele aanhalingstekens " identiek, maar JSON gebruikt alleen " de pprinted JSON bestandsinhoud kon daarom niet rechtstreeks in een bestand worden opgeslagen.

Anders wordt het nieuwe bestand niet als een geldig JSON formaat geparseerd.