formato estructura ejemplos ejemplo json shell command-line

estructura - ¿Cómo puedo imprimir bastante un archivo JSON desde la línea de comandos?



json ejemplos (6)

Tengo un archivo con una secuencia de elemento JSON:

{ element0: "lorem", value0: "ipsum" } { element1: "lorem", value0: "ipsum" } ... { elementN: "lorem", value0: "ipsum" }

¿Existe un script de shell para formatear JSON para mostrar el contenido del archivo en un formato legible?

¡He visto this publicación y creo que es un buen punto de partida!

Mi idea es iterar filas en el archivo y luego:

while read row; do echo ${row} | python -mjson.tool; done < "file_name"

¿Alguien tiene alguna otra idea?


Salida coloreada usando Pygmentize + Python json.tool

Pygmentize es una herramienta Pygmentize . Mira esto. Yo combino python json.tool con pygramize

echo ''{"foo": "bar"}'' | python -m json.tool | pygmentize -g

Para obtener otras herramientas similares e instrucciones de instalación, consulte la respuesta vinculada anteriormente.

Aquí hay una demostración en vivo:


jq - un procesador JSON liviano y flexible de línea de comandos

Sentí que esto se merecía su propia entrada cuando me llevó más tiempo de lo que debería haber descubierto. Estaba buscando una forma simple de imprimir bastante la salida json de docker inspect -f . Fue mencionado brevemente arriba por Noufal Ibrahim como parte de otra respuesta.

Desde el sitio web de jq ( https://stedolan.github.io/jq/ ):

jq es como sed para datos JSON: puedes usarlo para dividir, filtrar, mapear y transformar datos estructurados con la misma facilidad con la que sed, awk, grep y tus amigos te permiten jugar con texto.

Proporciona salida coloreada por defecto y simplemente tiene que jq a jq .

Ejemplo:

Salida "cruda" de json vs la misma canalización a jq


Hay muchos de ellos. Yo personalmente tengo este alias en mi .zshrc

pjson () { ~/bin/pjson.py | less -X }

donde pjson.py es

#!/usr/bin/env python import json import sys try: input_str = sys.stdin.read() print json.dumps(json.loads(input_str), sort_keys = True, indent = 2) except ValueError,e: print "Couldn''t decode /n %s /n Error : %s"%(input_str, str(e))

Me permite usar eso en una línea de comando como una tubería (algo así como curl http://.... | pjson ).

OTOH, el código personalizado es una obligación, así que hay jq , que para mí es el estándar de oro. Está escrito en C (y, por lo tanto, es portátil sin dependencias como Python o Node), hace mucho más que una impresión bonita y es rápido.


La solución de Shawn, pero para Python 3:

echo ''{"foo": "bar"}'' | python3 -m json.tool


Puedes usar :

Python JSON tool

(requiere Python 2.6+)

Por ejemplo :

echo ''{ "element0" : "lorem", "element1" : "ipsum" }'' | python -m json.tool

Lo cual te dará:

{ "element0": "lorem", "element1": "ipsum" }


Transfiera los resultados del archivo a la herramienta python json 2.6 en adelante

cat ''file_name'' | python -m json.tool