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)
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
.
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