Como imprimir um ficheiro JSON em Python

Jinku Hu 30 janeiro 2023
  1. Método json.dumps
  2. pprint Método
Como imprimir um ficheiro JSON em Python

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.

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

Artigo relacionado - Python JSON