Чтение данных json из переменной вместо файла в python

Я создаю сценарий 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 EAP вы используете?

James R. Perkins 26.03.2018 19:29

Я спрашиваю, потому что в WildFly теперь есть опция, которую вы можете добавить в jboss-cli.xml, чтобы разрешить вывод в формате JSON. issues.jboss.org/browse/WFCORE-3363

James R. Perkins 26.03.2018 19:36
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
2
97
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуй это!

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, а затем загрузить!

Amit Karnik 23.03.2018 10:51

Другие вопросы по теме