从变量而不是python中的文件读取json数据

Posted

技术标签:

【中文标题】从变量而不是python中的文件读取json数据【英文标题】:reading json data from variable instead of file in python 【发布时间】:2018-09-01 09:09:56 【问题描述】:

我正在创建一个 python 脚本来从 jboss-cli.sh 中提取值,默认情况下返回以下格式的输出:

“结果” => “成功”, “结果” => "活动计数" => "0", "可用计数" => "0", "平均阻塞时间" => "0", "平均创建时间" => "0", "CreatedCount" => "0", "DestroyedCount" => "0", "InUseCount" => "0", "MaxCreationTime" => "0", "MaxUsedCount" => "0", "MaxWaitCount" => "0", "MaxWaitTime" => "0", "超时" => "0", "TotalBlockingTime" => "0", "TotalCreationTime" => "0", “启用统计” => 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? 我问是因为在 WildFly 中现在有一个选项可以添加到 jboss-cli.xml 以允许输出为 JSON。 issues.jboss.org/browse/WFCORE-3363 【参考方案1】:

试试这个!

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

【讨论】:

【参考方案2】:

最后我自己得到了答案,将json解析为变量并提取如下结果:

parser = JbossParser() data=(parser.parse(OUT)) TOTAL_CN=(data["result"]["AvailableCount"])

【讨论】:

好,我不下载你的代码,所以我必须做 json.dump 然后加载!

以上是关于从变量而不是python中的文件读取json数据的主要内容,如果未能解决你的问题,请参考以下文章

python 读取文本文档中的数据

PySpark 从目录中读取多个 txt 文件为 json 格式

python写入json文件

如何从 json 文件中读取数据,是不是有语法错误?

Python:从文件中读取推文,没有用户信息

在 ngOnInit() 中使用数据绑定从本地 JSON 文件读取数据会导致未定义的变量