如何使用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')