我是python中JSON的新手。我有一个命令,它的输出格式如下-
"members": [
{
"address": "axyz.tcp://app@10.10.10.10:2541",
"roles": [
"qq-default",
"Server1"
],
"status": "Up"
},
{
"address": "axyz.tcp://app@10.10.10.10:2542",
"roles": [
"qq-default",
"Server2"
],
"status": "Up"
},
{
"address": "axyz.tcp://app@10.10.10.10:4011",
"roles": [
"qq-default",
"Server3"
],
"status": "Up"
},
{
"address": "axyz.tcp://app@10.10.10.10:19941",
"roles": [
"qq-default"
],
"status": "Up"
}
],
"self-address": "axyz.tcp://app@10.10.10.10:2542",
"unreachable": []
}
我尝试只提取地址、服务器名称(如Server1、Server2等)和状态(向上/向下),并将其存储在3个不同的数组中。你知道吗
我尝试使用regex,但是当我尝试提取服务器名称时,我最终会出现错误-'NoneType' object has no attribute 'group'
可能是因为空格。你知道吗
我的代码-
import json
json_file = source_jsonfile
with open(json_file) as json_file:
json_data = json.load(json_file
for e in json_data:
for key, value in e.iteritems():
print key, value
使用正则表达式-
RIDResult = re.search('"qq-default", (.*) ],', status)
print (RIDResult.group())
请说明如何获取3种不同的数据并将其存储到阵列.TIA. 你知道吗
如果您真的需要三个独立的item元素数组,这将为您提供:
如果我没有误解您的需求,那么这将与您的json一起工作,我已经用您的json结构创建了一个json文件,加载/解析并最终将其设置为
address
、status
和server_name
索引作为数组tia
使用列表理解,迭代
json_data['members']
中的每个dict,并从这些dictd
作为d['roles'][1] if len(d['roles'])>=2 else None
访问服务器名称要从中创建3个不同的列表,请使用
zip
相关问题 更多 >
编程相关推荐