首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从嵌套的dict中获取密钥

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

Stack Overflow用户
提问于 2017-09-26 11:46:41
回答 2查看 44关注 0票数 0

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

代码语言:javascript
运行
复制
{
    "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中获取键。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-26 11:57:21

试试这个:

代码语言:javascript
运行
复制
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")

这将打印您想要的值。

票数 1
EN

Stack Overflow用户

发布于 2017-09-26 12:47:50

代码语言:javascript
运行
复制
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"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46425671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档