Como Imprimir um Arquivo JSON Bonito em Python

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com dados JSON em Python, você pode se ver na necessidade de exibir esses dados em um formato mais legível, conhecido como “impressão bonita” (pretty-printing). Impressão bonita é uma maneira de formatar seu conteúdo JSON de forma que fique mais fácil para os humanos lerem. Neste artigo, exploraremos várias maneiras de imprimir bonito um arquivo JSON em Python.

Usando json.dump() e json.dumps()

O módulo json em Python oferece uma maneira direta de imprimir bonito dados JSON. Você pode usar o parâmetro indent em json.dump() ou json.dumps() para definir o número de espaços que deseja para a indentação. Aqui está um exemplo simples:

import json

# Seus dados JSON como uma string
seu_json = '["foo", {"bar": ["baz", null, 1.0, 2]}]'
# Analisa os dados JSON
analisado = json.loads(seu_json)
# Imprime bonito os dados JSON analisados
print(json.dumps(analisado, indent=4))

Isso irá exibir os dados JSON com uma indentação de 4 espaços, tornando-os muito mais legíveis.

Analisando e Imprimindo Bonito a partir de um Arquivo

Se seus dados JSON estão armazenados em um arquivo, você pode usar json.load() para analisá-los:

import json

# Abre seu arquivo JSON
with open('nome_do_arquivo.txt', 'r') as handle:
    # Analisa os dados JSON do arquivo
    analisado = json.load(handle)
    # Imprime bonito os dados JSON analisados
    print(json.dumps(analisado, indent=4))

Impressão Bonita de JSON via Linha de Comando

Para aqueles que preferem trabalhar diretamente da linha de comando, Python oferece uma ferramenta útil:

python3 -m json.tool algum.json

Este comando irá imprimir bonito os dados JSON do arquivo algum.json.

Usando jq para Impressão Bonita com Cores

Outra ferramenta de linha de comando que é excelente para trabalhar com dados JSON é jq. Ela não apenas imprime bonito seu JSON, mas também adiciona cor à saída, o que pode ser muito útil para distinguir entre diferentes tipos de dados:

jq . algum.json

Impressão Bonita com o Módulo pprint

O módulo pprint do Python também pode ser usado para exibir dados JSON de forma amigável para o ser humano. Veja como você pode usá-lo:

import json
import pprint

# Lê os dados JSON de um arquivo
with open('nome_do_arquivo.txt', 'r') as f:
    dados = f.read()
    dados_json = json.loads(dados)

# Imprime bonito os dados JSON na tela
pprint.pprint(dados_json, compact=True)

# Escreve os dados JSON impressos bonito em um arquivo
pretty_json_str = pprint.pformat(dados_json, compact=True).replace("'", '"')

with open('nome_do_arquivo.json', 'w') as f:
    f.write(pretty_json_str)

Lembre-se de substituir as aspas simples por aspas duplas na string retornada por pprint.pformat() para garantir que a saída seja um JSON válido.

Resumo

Imprimir bonito JSON em Python pode ser feito de várias maneiras, seja trabalhando dentro de um script ou diretamente da linha de comando. As funções dump() e dumps() do módulo json com o parâmetro indent, a ferramenta de linha de comando json.tool e a ferramenta jq são todas opções excelentes para formatar dados JSON. Além disso, o módulo pprint oferece uma maneira de imprimir bonito dados JSON com controle sobre a compactação e largura. Usando esses métodos, você pode facilmente transformar seus dados JSON em um formato legível por humanos, tornando-os mais fáceis de trabalhar e entender.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: