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)
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.
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