Cómo imprimir un archivo JSON en Python

Jinku Hu 30 enero 2023
  1. Método json.dumps
  2. Método pprint
Cómo imprimir un archivo JSON en Python

El contenido del archivo JSON podría ser desordenado si lo lees a la cadena o lo load.

Por ejemplo, en un archivo JSON ,

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

Si load y luego 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"]}]

El resultado es bien legible en comparación con el formato estándar que vemos normalmente.

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

Método json.dumps

La función json.dumps() serializa el obj dado a un str con formato JSON.

Necesitamos dar un entero positivo a la palabra clave parámetro indent en la función json.dumps() para imprimir el obj con el nivel de sangría dado. Si ident se establece en 0, sólo insertará nuevas líneas.

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étodo pprint

El módulo pprint da la capacidad de imprimir bastante las estructuras de datos de Python. El módulo pprint.pprint imprime un objeto Python en un flujo seguido de una nueva línea.

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)

El contenido de los datos de los ficheros JSON se imprimirá de forma aproximada. Y también puedes definir la sangría asignando el parámetro indent.

pprint.pprint(json_data, indent=2)
Atención

La pprint trata las comillas simples ' y las dobles " de forma idéntica, pero JSON sólo usa ", por lo tanto, el contenido del archivo pprinted JSON no puede ser guardado directamente en un archivo.

De lo contrario, el nuevo archivo no será analizado como un formato JSON válido.

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

Artículo relacionado - Python JSON