首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dic从键中提取特定值

使用dic从键中提取特定值
EN

Stack Overflow用户
提问于 2020-04-10 15:09:30
回答 2查看 56关注 0票数 0

我试图从键'ip‘中提取一个特定的值,在这个例子中,它是192.168.200.200,但在某些情况下,它将是不同的,可能不止一个。我是刚接触python的人,有人能帮我拿出价值吗?

代码语言:javascript
复制
# import functions
from cisco_xe_api import *

# define variables
device_config = api_get_conf()

# Rule SV-105995r2_rule: The Cisco router must be configured to implement message
# authentication for all control plane protocols.
def sv105995r2rule_ospf():
    #device_config = api_get_conf()
    routing_protocol = device_config['Cisco-IOS-XE-native:native']['router']
    ospf_networks = device_config['Cisco-IOS-XE-native:native']['router']['Cisco-IOS-XE-ospf:router-ospf']['ospf']
    protocol_intf = device_config['Cisco-IOS-XE-native:native']['interface']
    if 'Cisco-IOS-XE-ospf:router-ospf' in routing_protocol.keys():
       print('\nOSPF is configured on this device. Checking for MD5 authentication.'
       print(ospf_networks.items())

以下是print语句的输出:

代码语言:javascript
复制
OSPF is configured on this device. Checking for MD5 authentication.
dict_items([('process-id', [{'id': 100, 'area': [{'area-id': 0, 'authentication': {'message-digest': [None]}}], 'network': [{'ip': '192.168.200.200', 'wildcard': '0.0.0.0', 'area': 0}]}])])

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-10 15:39:50

这个结构是dict→list→dict→list→dict,所以在您的示例中,您可以获得如下所示的IP:

代码语言:javascript
复制
ospf_networks['process-id'][0]['network'][0]['ip']

我对您正在使用的API一无所知,但假设任何列表都可能有多个项,那么打印所有的IP应该如下所示:

代码语言:javascript
复制
for d0 in ospf_networks['process-id']:
    for d1 in d0['network']:
        print(d1['ip'])
票数 0
EN

Stack Overflow用户

发布于 2020-04-10 15:22:22

对于您提供的示例,获取ip的代码如下:

代码语言:javascript
复制
ospf_networks['process_id'][0]['network'][0]['ip']

事情是这样的:

得到一个值键'process_id'.

  • This值是一个列表。在这个例子中,这个列表中只有一个元素。在这个列表中,得到了这个元素,并且它是一个dict。这个dict有以下键:'id','area','network'.

  • We get by键'network'.

  • The值是另一个带有'ip‘的element.

  • It's的列表,‘通配符’和‘area’.

  • 我们通过'ip‘键得到值.

现在,要获得多个ip地址( ospf_networks dict ),完全取决于它们在结构中的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61143195

复制
相关文章

相似问题

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