Python 无法从嵌套的dict中获取密钥
我从Openstack nova API获得了以下输出Python 无法从嵌套的dict中获取密钥,python,json,python-2.7,dictionary,nested,Python,Json,Python 2.7,Dictionary,Nested,我从Openstack nova API获得了以下输出 { "u'zoneState": { "u'available": True }, "u'hosts": { "u'compute-1": { "u'nova-compute": { "u'available": True, "u'active": True, "u'
{
"u'zoneState": {
"u'available": True
},
"u'hosts": {
"u'compute-1": {
"u'nova-compute": {
"u'available": True,
"u'active": True,
"u'updated_at":
"u'2017-09-26T10":
"04": 49.000000'
}
},
"u'compute-2": {
"u'nova-compute": {
"u'available": True,
"u'active": True,
"u'updated_at":
"u'2017-09-26T10":
"04": 48.000000'
}
}
},
"u'zoneName": u'nova'
}
我正在编写python脚本以获取可用性区域中的计算节点详细信息
我能够获取主机名,但是我正在尝试获取主机状态“u'available”:True、
和“u'active”:True、
,但是我无法从dict获取密钥
任何帮助都将不胜感激。试试以下方法:
for host_key in d["u'hosts"].keys():
for key in d["u'hosts"][host_key]:
print d["u'hosts"][host_key][key].get("u'active")
这将打印您所需的值谢谢您的回复。但是,它总是抛出
None
<代码>>>>用于字典['hosts']中的主机密钥。密钥():。。。打印您的\u字典['hosts'][host\u key]。获取('active')。。。无
for x in openstack_dict["u'hosts"].iterkeys():
if len(openstack_dict["u'hosts"][x]) > 0:
for y in openstack_dict["u'hosts"][x].iterkeys():
if len(openstack_dict["u'hosts"][x][y]) > 0:
for z in openstack_dict["u'hosts"][x][y].iterkeys():
print x,':',y,':',z,':', openstack_dict["u'hosts"][x][y][z]
else:
print openstack_dict["u'hosts"][x]
else:
print openstack_dict["u'hosts"]