小编典典

从控制台使用json和curl的工具

elasticsearch

我正在使用ElasticSearch进行第一步,并从命令行测试当前正在使用curl的东西。但是,这有点烦人,因为我必须在文本编辑器上键入所有内容,然后粘贴到控制台中(控制台中没有选项卡格式),并且得到的json输出未格式化。

因此,我想知道是否有许多与json数据配合使用的SQL控制台,以使其更易于测试和使用json rest网络服务。

您使用什么工具执行此类任务?


阅读 301

收藏
2020-06-22

共1个答案

小编典典

首先,如果您得到的json输出未格式化,请附加?pretty=1到任何url。结果将更好。python -m json.tool如果您使用的是Python 2.6+
,则另一个选择是将输出通过管道传递到。我喜欢后一个选项,因为我将它保存到了一个shell函数中,并且可以| j在输出json的任何命令之后简单地键入。更短更通用。

对于发出curl命令,有两种选择。最通用的解决方案是使用整个命令创建一个shell脚本。例如:

curl -s localhost:9200/foo/_search -d'
  {"query":
     {"query_string":
        {"query":"foo*"}}}' | python -m json.tool

与其将其粘贴到文件中,不如将其粘贴在shell提示符下。然后只需调整源代码并根据需要运行它即可。

% sh query

对此的一种变化是使用Emacs。我使用它curl在缓冲区区域上运行,操纵结果等,shell-command-on- region或者在那M-|是一个不错的选择。因此,对于上述脚本,我可以发出M-| sh RET而不是切换到shell的命令。Vim允许您做类似的事情。

我还没有检查过这个,但是很多人似乎都喜欢elasticsearch-head。它是一个UI,可以发出查询并为您提供结构化的结果。
http://mobz.github.com/elasticsearch-
head/

更新
:我最近注意到Perl的JSON模块附带了一个方便的命令行实用程序json_pp,该实用程序类似于Python的json.tool。如果安装,JSON::XS则还有一个(较快的)json_xs垃圾箱。

2020-06-22