我有以下json输出:
{
"code":0,
"message":"success",
"data":[
{
"group_id":"12345678901234567890",
"display_name":"GROUP",
"description":"Group 1",
"monitors":[
"12345678901234567890",
"12345678901234567890",
"12345678901234567890"
]
},
{
"group_id":"12345678901234567890",
"display_name":"KK-GROUP1",
"description":"KK Group 1",
"monitors":[
"12345678901234567890",
"12345678901234567890",
"12345678901234567890"
]
},
{
"group_id":"12345678901234567890",
"display_name":"KK-GROUP2",
"description":"KK Group 2",
"monitors":[
"12345678901234567890",
"12345678901234567890",
"12345678901234567890"
]
},
{
"group_id":"12345678901234567890",
"display_name":"KK-GROUP3",
"description":"KK Group 3",
"monitors":[
"12345678901234567890",
"12345678901234567890",
"12345678901234567890"
]
}
]
}
我有这样一个定义,它应该循环遍历从pycurl命令接收到的JSON输出,并查找以KK开头的所有组,例如,从各个monitors字段中的所有ID创建一个列表,以添加到我编写的脚本的另一部分。在上面的输出中,它应该提供9个ID(每组3个)。。。不管出于什么原因,它只抓取前3个监视器ID。你知道吗
def ReturnedMonitors():
listOfChecks = json.loads(connectSite('GET',''))
for i in listOfChecks['data']:
while i['display_name'].startswith(options.clusterName.upper()):
return i['monitors']
此操作的输出将传递给以下对象:
for monitor in ReturnedMonitors():
putData = 'activate/' + monitor
print "Activated: " + modifyMonitors('PUT',putData)
modifyMonitors是另一个将发布到站点的pycurl定义。你知道吗
如果您试图用-
ReturnedMonitors()
创建一个生成器函数,那么您创建它是错误的,当您执行return
时,它从函数返回,您需要使用yield
关键字,而且,如果您需要在“monitors list”中分别生成每个id,您应该对它们进行循环并分别生成。示例-对于python3.3+,可以使用^{} 从iterable/iterator(称为generator delegation)生成所有值-
相关问题 更多 >
编程相关推荐