我有一个脚本,可以对某些网络设备执行很多不同的测试。我只想从输出中打印失败的消息。键(显示bgp摘要)不是恒定的,可以变化。在“失败”部分和“通过”部分中可以有多个按摩字段。 我该怎么办?
pprint(checkvalue.test_results)
提供以下输出:
{'show bgp summary': [{'count': {'fail': 2, 'pass': 8},
'failed': [{'id': {'peer-address': '10.10.20.20'},
'message': ' The BGP Neighbour 10.10.20.20 '
"was in ['Established'], now "
"it's ['Connect']",
'post': {'peer-address': '10.10.20.20',
'peer-state': ['Connect']},
'post_node_value': ['Connect'],
'pre': {'peer-state': ['Established']},
'pre_node_value': ['Established']},
{'id': {'peer-address': '10.10.10.10'},
'message': ' The BGP Neighbour 10.10.10.10 '
"was in ['Established'], now "
"it's ['Connect']",
'post': {'peer-address': '10.10.10.10',
'peer-state': ['Connect']},
'post_node_value': ['Connect'],
'pre': {'peer-state': ['Established']},
'pre_node_value': ['Established']}],
'node_name': 'peer-state',
'passed': [{'id': {'peer-address': '111.111.111.111'},
'message': 'BGP State check',
'post': {'peer-address': '111.111.111.111',
'peer-state': ['Established']},
'post_node_value': ['Established'],
'pre': {'peer-state': ['Established']},
'pre_node_value': ['Established']},
{'id': {'peer-address': '0000:0000:0000:00:2'},
'message': 'BGP State check',
'post': {'peer-address': '0000:000:0000:00::2',
'peer-state': ['Active']},
'post_node_value': ['Active'],
'pre': {'peer-state': ['Active']},
'pre_node_value': ['Active']},
'result': False,
'test_name': 'BGP-peers-estab',
'testoperation': 'no-diff',
'xpath': 'bgp-peer'}]}
我只想打印测试失败的消息。像这样: 'BGP邻居10.10.10.10'“位于['已建立'],现在” “是['Connect']”
答案 0 :(得分:0)
谢谢大家。你指出我正确的方向。我可以通过以下方式实现自己的目标:
for testname, value in checkvalue.test_results.items():
for i in checkvalue.test_results[testname][0]['failed']:
print(i['message'])