命令行中可扩展的数据结构遍历
lens-cli的Python项目详细描述
镜头
lens
是一个易于遍历和
从终端打印数据结构。
它是可扩展的。
使用伟大的Pygments库。
它应该在Python2和3上都能工作,但是它是被开发出来的 记住了python 3。
安装
包尚未注册到pypi。也就是说你应该
可以用pip安装它。lens
已经被拿走了,所以
我们用了lens-cli
。
pip install lens-cli
用法
呼叫lens -h
将打印此消息:
usage: lens [-h] [--input INPUT] [--format FORMAT]
[--no-highlight NO_HIGHLIGHT]
[key [key ...]]
Extensible data structure traversal from the command line
positional arguments:
key the keys to traverse
optional arguments:
-h, --help show this help message and exit
--input INPUT, -i INPUT
the input file (defaults to the standard input)
--format FORMAT, -f FORMAT
the data format to consume (defaults to json)
--no-highlight NO_HIGHLIGHT, -n NO_HIGHLIGHT
prevent syntax highlighting
这应该相对简单。让我们看几个例子:
# just calling lens will print everything, syntax-highlighted $ curl -s https://httpbin.org/get | lens {"args": {}, "headers": {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "de,en-US;q=0.7,en;q=0.3", "Dnt": "1", "Host": "httpbin.org", "Referer": "https://httpbin.org/", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:50.0) Gecko/20100101 Firefox/50.0"}, "origin": "213.61.134.12", "url": "https://httpbin.org/get"}# suppose we only want to see the "Host" header $ curl -s https://httpbin.org/get | lens header Host "httpbin.org"# or use xml $ curl -s https://httpbin.org/xml | lens -f=xml <slideshow title="Sample Slide Show"date="Date of publication"author="Yours Truly" > <slide type="all"> <title>Wake up to WonderWidgets!</title> </slide> <slide type="all"> <title>Overview</title> <item>Why <em>WonderWidgets</em> are great</item> <item/> <item>Who <em>buys</em> WonderWidgets</item> </slide> </slideshow> # suppose we want to only get the title of the second slide $ curl -s https://httpbin.org/xml | lens -f=xml slide 1 title <title>Overview</title>
我们还可以通过提供-i
选项来读取文件。
lens还发现其输出是否重定向到文件,在这种情况下
不会应用语法突出显示(可以通过
选项)。
延伸
您可以编写自己的解析器/遍历器-无可否认,解析器 不是个好名字,但现在我们还是坚持。
它们应该继承自LensParser
中的lens.parsers.base
,
至少实现方法treat(self, inpt, keys)
,
其中,inpt
是输入字符串,keys
是
穿越。它应该以
弦。
或者,解析器可以通过公开
静态属性lexer
,如果突出显示适用。IT
不过,不用它也行。
插件可以是第三方pip
模块,在这种情况下
应遵循命名方案lens-{format-name}
,并导出
名为Parser
的解析器。
插件的示例可以在 bson分析器存储库。
你只需要知道这些!
玩得开心!