Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法从嵌套的dict中获取密钥_Python_Json_Python 2.7_Dictionary_Nested - Fatal编程技术网

Python 无法从嵌套的dict中获取密钥

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'

我从Openstack nova API获得了以下输出

{
    "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"]