jmespath终端

jmespath-terminal的Python项目详细描述


杰梅斯帕斯,在你的终点站!

https://cloud.githubusercontent.com/assets/368057/5158769/6546e58a-72fe-11e4-8ceb-ba866777983e.gif

概述

jmespath是一种用于处理json文档的表达式语言。如果你有 以前从没听说过jmespath,你写了一个jmespath表达式,当 应用于输入json文档将生成基于 在你提供的表达式上。

您可以查看JMESPath site了解更多信息。

学习jmespath语言的最好方法之一是进行实验 通过创建自己的jmespath表达式。jmespath终端 使您很容易立即看到jmespath表达式的结果 当你打字的时候。

开始

您可以通过pip安装jmespath终端:

$ pip install jmespath-terminal

然后将有一个jpterm程序可以运行:

$ jpterm

如果未指定参数,则使用示例json文档作为 输入。

还可以指定要使用的初始json文档 通过将json文件指定为位置参数:

$ jpterm /tmp/somejsondoc.json

您还可以将输入json文档导入 jpterm命令:

https://cloud.githubusercontent.com/assets/368057/5158770/6a6afb6e-72fe-11e4-8be3-893edf21920e.gif

输出

当^ {Tt1} $程序退出时(通过{TT4} $或^ {TT5}$),^ {TT1}$5 根据输出模式将内容写入stdout。有三个输出 模式:

  • 结果-“jmespath result”窗格(右侧)中的任何内容都将 打印到标准输出。
  • expression-“jmespath expression”窗格中的内容将打印到 标准输出。
  • 什么也没写——退出时什么都不写。

默认模式是“result”,这意味着默认情况下,无论 当{TT1}$退出时,结果窗格将被打印到StdOUT。你可以换 使用Ctrl-p的输出模式,该模式将在上述三种模式之间循环。 还可以指定启动jpterm命令时使用的模式 使用-m/--output-mode命令行选项。

键盘快捷键

F5 or Ctrl + c
退出程序。
Ctrl + p
输出模式切换。在输出当前结果之间切换,
表达式,否则什么都没有。以上“输出”部分将对此进行讨论。
Ctrl + ]
清除当前表达式。

鼠标点击

注意:这些功能依赖于终端支持。(终端应用程序 Mac OS X中包含的不支持此功能,但iTerm2 可以。)

urwid python包的一个特性(jmespath终端构建在这个包上) 就是鼠标点击被识别。这允许您单击以切换焦点 在“输入”或“结果”窗口(当然还有返回表达式)上 滚动它。

这会使选择要复制/粘贴的文本变得困难。许多Linux 终端将允许您选择带有Shift + click/drag和 用Shift + Ctrl + c复制它。在iterm2中,可以使用 Opt/Alt + click/drag

在jmespath终端上工作

如果您想在jmespath终端上添加新功能, 您可以首先创建并激活一个新的虚拟环境:

$ virtualenv venv
$ . venv/bin/activate

然后安装模块:

$ pip install -e .

现在您可以修改jpterm.py模块并查看 运行jpterm命令时反映的更改。

beta状态

在jmespath终端达到版本1.0之前,一些命令行选项 语义可能会改变。将有一个changelog.rst,它将概述任何 每个新版本所发生的更改。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
persistence Berkeley DB(Java版)在应用程序运行之间不是持久的   java使调度方法线程安全   java有更好的(java8?)收集异常的“原因堆栈”的方法?   java帮助我找到错误:方法声明无效;需要返回类型   java如何自动删除子实体?   sql Hibernate使用Java List实现多对多双向映射   java创建一组需要帮助的对象   目标c将Java程序绑定到Cocoa接口   多线程Java:同步操作与波动性到底有什么关系?   Java Slick2d如何将鼠标坐标转换为世界坐标   java内存泄漏。mysql。jdbc。ConnectionPropertiesImpl$*任意*ConnectionProperty   将java代码从hbase 0.92迁移到0.98.0hadoop2