jboss cli输出解析器
jbosspl的Python项目详细描述
这个简单的python库是一个基于PLY的jboss输出lexer&parser (另一个lex和yacc的Python实现)
JBoss CLI服务器的输出与JSON非常相似,但它不是100%JSON,因此很难 用普通的工具分析。使用这个库,您可以处理jboss输出并将其解析为json。
示例
fromjbossply.jbossparserimportJbossParsertest3="""{ "outcome" => "success", "result" => { "rule-1" => { "flags" => "L,QSA,R", "pattern" => "^/$", "substitution" => "/ejbca", "condition" => undefined }, "rule-3" => { "flags" => "L,QSA,R", "pattern" => "^/pki/?$", "substitution" => "/ejbca/adminweb", "condition" => undefined } } } """parser=JbossParser()print(parser.parse(test3))
输出
{u'outcome': u'success', u'result': {u'rule-3': {u'pattern': u'^/pki/?$', u'flags': u'L,QSA,R', u'condition': None, u'substitution': u'/ejbca/adminweb'}, u'rule-1': {u'pattern': u'^/$', u'flags': u'L,QSA,R', u'condition': None, u'substitution': u'/ejbca'}}}
您可能需要缓存解析器表,然后创建如下的JbossParser:
parser=JbossParser(write_tables=True,outputdir='/tmp/table-dir')
命令行用法
安装pip之后,您还可以使用命令行助手jboss2json
$ cat jboss-output.txt | jboss2json {"outcome": "success", "result": {"rule-3": {"pattern": "^/pki/?$", "flags": "L,QSA,R", "condition": null, "substitution": "/ejbca/adminweb"}, "rule-1": {"pattern": "^/$", "flags": "L,QSA,R", "condition": null, "substitution": "/ejbca"}}}
安装
您可以使用pip安装此软件包:
pip install jbossply
学分
代码基于@vsajip repositoryjson-ply