Cómo imprimir un archivo JSON en Python

  1. Método json.dumps
  2. Método pprint

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.

Artículo relacionado - Python JSON

  • Iterar a través del objeto Json en Python