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