En primer lugar, si la salida json que obtiene no está formateada, añada ?pretty=1
a cualquier url. El resultado será mucho mejor. Otra opción es canalizar la salida a python -m json.tool
si tiene Python 2.6+. Me gusta la última opción porque la tengo guardada en una función de shell y simplemente puedo escribir | j
después de cualquier comando que emita json. Mucho más corto y genérico.
Para emitir comandos curl hay un par de opciones. La solución más universal es crear un script de shell con todo el comando. Por ejemplo:
curl -s localhost:9200/foo/_search -d'
{"query":
{"query_string":
{"query":"foo*"}}}' | python -m json.tool
En lugar de pegar que el intérprete de comandos, guardarlo en un archivo. Luego solo modifica la fuente y ejecútala tantas veces como necesites.
% sh query
Una variación de esto es usar Emacs. Lo uso para ejecutar curl
en regiones de búferes, manipular el resultado, etc. shell-command-on-region
o es una buena opción allí. Entonces, para el script anterior, puedo emitir M-| sh RET
en lugar de cambiar a un shell. Vim te permite hacer algo similar.
No he comprobado este, pero a mucha gente parece gustarle elasticsearch-head. Es una interfaz de usuario que emitirá consultas y le dará resultados estructurados. http://mobz.github.com/elasticsearch-head/
actualización: Hace poco se dio cuenta de que los módulos de Perl barcos JSON con una utilidad de línea de comandos útil llamados json_pp
de que funcionan de forma similar a Python de json.tool
. Si instala JSON::XS
, también hay un contenedor (más rápido) json_xs
.
muy buena respuesta, un montón de consejos útiles, BTW ya estoy usando la cabeza y es una herramienta maravillosa – opensas