Я создаю сценарий python для извлечения значений из jboss-cli.sh, которые по умолчанию возвращают вывод в следующем формате:
{
"outcome" => "success",
"result" => {
"ActiveCount" => "0",
"AvailableCount" => "0",
"AverageBlockingTime" => "0",
"AverageCreationTime" => "0",
"CreatedCount" => "0",
"DestroyedCount" => "0",
"InUseCount" => "0",
"MaxCreationTime" => "0",
"MaxUsedCount" => "0",
"MaxWaitCount" => "0",
"MaxWaitTime" => "0",
"TimedOut" => "0",
"TotalBlockingTime" => "0",
"TotalCreationTime" => "0",
"statistics-enabled" => false
}
}
Теперь я конвертирую это в формат JSON, используя приведенный ниже код:
from jbossply.jbossparser import JbossParser
parser = JbossParser()
print(parser.parse(OUT))
поэтому он дает вывод как:
{u'outcome': u'success', u'result': {u'AverageBlockingTime': u'0', u'AvailableCount': u'0', u'statistics-enabled': False, u'MaxCreationTime': u'0', u'MaxUsedCount': u'0', u'CreatedCount': u'0', u'MaxWaitCount': u'0', u'TimedOut': u'0', u'InUseCount': u'0', u'ActiveCount': u'0', u'TotalBlockingTime': u'0', u'DestroyedCount': u'0', u'AverageCreationTime': u'0', u'TotalCreationTime': u'0', u'MaxWaitTime': u'0'}}
Теперь, как извлечь из него "AvailableCount". Пробовал json.load, но не работал.
Я спрашиваю, потому что в WildFly теперь есть опция, которую вы можете добавить в jboss-cli.xml, чтобы разрешить вывод в формате JSON. issues.jboss.org/browse/WFCORE-3363

Попробуй это!
from jbossply.jbossparser import JbossParser
import json
parser = JbossParser()
parser_out = parser.parse(OUT)
json_dump = json.dump(parser_out)
json_load = json.loads(json_dump)
print json_load['result']['AvailableCount']
# op 0
Наконец, я получил ответ сам, проанализировал json на переменную и извлек результат вроде beow:
parser = JbossParser()
data=(parser.parse(OUT))
TOTAL_CN=(data["result"]["AvailableCount"])
хорошо, я не загружаю ваш код, поэтому мне пришлось сделать json.dump, а затем загрузить!
Какую версию WildFly или JBoss EAP вы используете?