Шаг 1: Strong> Это мой скрипт:
Код: Выделить всё
with ConnectHandler(**device) as net_connect:
wlc_hostname = net_connect.find_prompt()[:-1]
data_to_parse = net_connect.send_command('show run | sec ^wlan.+_([0-9])+_GuestNet')
print (data_to_parse)
ttp_template = """
wlan {{ wlan_profile }} {{ wlan_id }} {{ ssid }}
security wpa psk set-key ascii {{ psk-encrp-method }} {{ guest-psk | ORPHRASE }}
shutdown {{ state | set ("disabled") }}
"""
parser = ttp(data=data_to_parse, template=ttp_template)
parser.parse()
cisco_wlanTemplates = parser.result(structure="dictionary")
print(json.dumps(cisco_wlanTemplates, sort_keys=True, indent=4, separators=(',', ': ')))
for cisco_wlan in cisco_wlanTemplates:
print ('WLAN Profile: ',*cisco_wlan)
Код: Выделить всё
wlan GUEST_local 49 GuestSSID
assisted-roaming prediction
client association limit radio 31
description "Guest with local forwarding"
no security ft adaptive
security wpa psk set-key ascii 8 TaIQFQeIOPX^ZCIEbbggNLMiFNGSAYVBecRF
no security wpa akm dot1x
security wpa akm psk
no shutdown
Код: Выделить всё
{
"GUEST_wlan_profile": [
{
"GUEST_local": {
"guest-psk": "TaIQFQeIOPX^ZCIEbbggNLMiFNGSAYVBecRF",
"psk-encrp-method": "8",
"ssid": "GuestNet",
"wlan_id": "49"
}
}
]
}
Код: Выделить всё
WLAN Profile: G U E S T _ w l a n _ p r o f i l eКод:
Код: Выделить всё
for cisco_wlan in cisco_wlanTemplates:
print ('WLAN Profile: ',cisco_wlan[0])
Код: Выделить всё
WLAN Profile: GКод:
Код: Выделить всё
ttp_template = """
wlan {{ wlan_profile }} {{ wlan_id }} {{ ssid }}
security wpa psk set-key ascii {{ psk-encrp-method }} {{ guest-psk | ORPHRASE }}
shutdown {{ state | set ("disabled") }}
"""
# create parser object and parse data using template:
parser = ttp(data=data_to_parse, template=ttp_template)
parser.parse()
cisco_wlanTemplates = parser.result(format='json')[0]
print(cisco_wlanTemplates)
Код: Выделить всё
[
{
"GUEST_local": [
{
"ssid": "GuestNet",
"wlan_id": "49"
},
{
"guest-psk": "TaIQFQeIOPX^ZCIEbbggNLMiFNGSAYVBecRF",
"psk-encrp-method": "8"
}
]
}
]
С помощью TTP я хочу получить доступ к «guest-psk» для его изменения и в будущем изменить дополнительные функции из исходного вывода Netmiko, поэтому мне нужны вложенные словари, чтобы охватить все различные «профили WLAN». настройки на устройстве Cisco.
На этот раз я не хочу использовать для этого другой синтаксический анализатор или регулярное выражение.
Подробнее здесь: https://stackoverflow.com/questions/771 ... dictionary