Como imprimir um ficheiro JSON em Python

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

O conteúdo do arquivo JSON pode ser confuso se você lê-lo para a string ou load.

Por exemplo, em um arquivo JSON,

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

Se você load e depois 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']}]

O resultado é bem legível em comparação com o formato padrão que normalmente vemos.

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

Método json.dumps

A função json.dumps() série o obj dado a um JSON formatado str.

Nós precisamos dar um inteiro positivo ao parâmetro de palavra-chave indent na função json.dumps() para imprimir o obj com o nível de travessão dado. Se o ident estiver configurado para ser 0, ele irá inserir apenas novas linhas.

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

O módulo pprint dá a capacidade de imprimir estruturas de dados Python. O módulo pprint.pprint imprime um objeto Python para um fluxo seguido por uma nova linha.

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)

O conteúdo dos dados do arquivo JSON será bem impresso. E você também pode definir o travessão atribuindo o parâmetro indent.

pprint.pprint(json_data, indent=2)
Atenção

A pprint trata de forma idêntica as aspas simples e duplas, mas a JSON utiliza apenas a pprint, portanto, o conteúdo do arquivo JSON não pode ser salvo diretamente em um arquivo.

Caso contrário, o novo arquivo não será analisado como válido no formato JSON.