Wie man eine JSON-Datei in Python hübsch ausdruckt
Der Inhalt der JSON-Datei könnte unordentlich sein, wenn Sie sie in den String einlesen oder load.
Zum Beispiel in einer JSON-Datei ,
[{"foo": "Etiam", "bar": ["rhoncus", 0, "1.0"]}]
Wenn man es lädt und dann druckt.
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"]}]
Das Ergebnis ist gut lesbar, verglichen mit dem Standardformat, das wir normalerweise sehen.
[
{
"foo": "Etiam",
"bar": [
"rhoncus",
0,
"1.0"
]
}
]
json.dumps Methode
Die Funktion json.dumps() serialisiert das angegebene obj zu einer JSON-formatierten str.
Wir muessen dem Schluesselwortparameter indent in der json.dumps() Funktion eine positive Ganzzahl geben, um das obj mit dem angegebenen Indent-Level zu drucken. Wenn ident auf 0 gesetzt ist, werden nur neue Zeilen eingefügt.
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 Modul gibt die Möglichkeit, Python-Datenstrukturen schön zu drucken. pprint.pprint Pretty druckt ein Python-Objekt in einen Stream, gefolgt von einem Newline.
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)
Der Dateninhalt der JSON-Datei wird dabei ziemlich gedruckt. Und Sie können den Einzug auch durch die Zuweisung des Parameters indent definieren.
pprint.pprint(json_data, indent=2)
pprint behandelt einfache ' und doppelte Anführungszeichen " identisch, aber JSON verwendet nur ", daher konnte der gepresste JSON Dateiinhalt nicht direkt in eine Datei gespeichert werden.
Andernfalls wird die neue Datei nicht als gültiges JSON Format geparst.
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