Comment imprimer un fichier JSON en Python

Jinku Hu 30 janvier 2023
  1. Méthode json.dumps
  2. Méthode pprint
Comment imprimer un fichier JSON en Python

Le contenu du fichier JSON peut être désordonné si vous le lisez à la chaîne ou si vous le load.

Par exemple, dans un fichier JSON ,

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

Si vous load et ensuite print.

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

Le résultat est bien lisible par rapport au format standard que nous voyons normalement.

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

Méthode json.dumps

La fonction json.dumps() sérialise l’ obj donné en une str formatée en JSON.

Nous devons donner un entier positif au mot-clé paramètre indent dans la fonction json.dumps() pour afficher l’ obj avec le niveau d’indentation donné. Si ident est défini à 0, il n’insérera que des nouvelles lignes.

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

Méthode pprint

Le module pprint donne la possibilité d’imprimer des structures de données Python. Le module pprint.pprint affiche un objet Python dans un flux suivi d’une nouvelle ligne.

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)

Le contenu des données du fichier JSON sera imprimé. Et vous pouvez aussi définir l’indentation en assignant le paramètre indent.

pprint.pprint(json_data, indent=2)
A l'attention de

pprint traite les guillemets simples ' et doubles " identiquement, mais JSON n’utilise que ", donc, le contenu du fichier JSON pprincé ne pourrait pas être directement enregistré dans un fichier.

Sinon, le nouveau fichier ne sera pas analysé comme un format JSON valide.

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - Python JSON