Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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从dic中提取某些值_Python_Python 3.x - Fatal编程技术网

如何使用Python从dic中提取某些值

如何使用Python从dic中提取某些值,python,python-3.x,Python,Python 3.x,我试图从该输出中提取一些特定值: {'GigabitEthernet': [{'name': '1', 'ip': {'address': {'primary': {'address': '192.168.200.200', 'mask': '255.255.255.0'}}, 'Cisco-IOS-XE-ospf:router-ospf': {'ospf': {'authentication': {'key-chain': 'sv-10599'}, 'message-digest-key':

我试图从该输出中提取一些特定值:

{'GigabitEthernet': [{'name': '1', 'ip': {'address': {'primary': {'address': '192.168.200.200', 'mask': '255.255.255.0'}}, 'Cisco-IOS-XE-ospf:router-ospf': {'ospf': {'authentication': {'key-chain': 'sv-10599'}, 'message-digest-key': [{'id': 1, 'md5': {'auth-key': 'cisco'}}], 'network': {'point-to-point': [None]}}}}, 'mop': {'enabled': False, 'sysid': False}, 'Cisco-IOS-XE-ethernet:negotiation': {'auto': True}}, {'name': '2', 'shutdown': [None], 'mop': {'enabled': False, 'sysid': False}, 'Cisco-IOS-XE-ethernet:negotiation': {'auto': True}}, {'name': '3', 'shutdown': [None], 'mop': {'enabled': False, 'sysid': False}, 'Cisco-IOS-XE-ethernet:negotiation': {'auto': True}}]}
理想情况下,我希望得到以下值:

千兆位以太网
1
192.168.200.200
255.255.255.0

千兆位以太网
2
关闭

返回千兆位以太网,但我似乎无法获取“名称”、“地址”或“掩码”。如果有人对此稍有了解,可以帮助我,并为我指出一个好的位置,在那里我可以学习更多关于如何使用python处理这些情况的知识


谢谢

使用
get
功能。例如,使用以下词典:

test_dict = {'a': 1, 'b': 'two', 'c': 3.0}
test_dict.get('c', 'default-value')

这个简单的循环将得到您所需要的

for device_interface in device_config["GigabitEthernet"]:
    print('GigabitEthernet')
    print(*device_interface.items(), sep='\n')

for device_interface in device_config["GigabitEthernet"]:
    print('GigabitEthernet')
    print(*device_interface.items(), sep='\n')