Wie man eine JSON-Datei in Python hübsch ausdruckt

Jinku Hu 30 Januar 2023
  1. json.dumps Methode
  2. pprint Methode
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)
Achtung

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.

Autor: 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

Verwandter Artikel - Python JSON