Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 27, 2022 20:07:15

svm1987
Зарегистрирован: 2022-06-27
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Формирование двумерного списка из вывода

Добрый день!

Допустим с помощью библиотеки netmiko вернулся результат:

Destination Address Address Type VLAN Destination Port
——————- ———— —- ——————–
f02f.7409.5290 Dynamic 1 FastEthernet3
f872.ea83.dbca Self 1 Vlan1

как из этого вывода сформировать двумерный список построчный? или еще лучше, создать словарь с такими параметрами:

 {[ Destination Address: f02f.7409.5290, Address Type: Dynamic, VLAN: 1, Destination Port: FastEthernet3], [Destination Address: f872.ea83.dbca, Address Type: Self, VLAN: 1, Destination Port: Vlan1]}

textfsm для этой команды не работает, выводит ошибки. Я запускаю show mac-address-table на 800 series, а он видимо заточен под show mac address-table.

Отредактировано svm1987 (Июнь 27, 2022 20:07:59)

Офлайн

#2 Июнь 27, 2022 23:44:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9870
Репутация: +  853  -
Профиль   Отправить e-mail  

Формирование двумерного списка из вывода

Передай точно то, что приходит. Используй тег code.

[code]
тут пишешь результат от netmiko
[/code]



Отредактировано py.user.next (Июнь 27, 2022 23:44:33)

Офлайн

#3 Июнь 28, 2022 10:45:45

svm1987
Зарегистрирован: 2022-06-27
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Формирование двумерного списка из вывода

svm@ubuntu:~$ python3 cisco.py 
Destination Address Address Type VLAN Destination Port
------------------- ------------ ---- --------------------
f02f.7409.5290 Dynamic 1 FastEthernet3
f872.ea83.dbca Self 1 Vlan1

svm@ubuntu:~$

Офлайн

#4 Июнь 28, 2022 11:07:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9870
Репутация: +  853  -
Профиль   Отправить e-mail  

Формирование двумерного списка из вывода

  
>>> import re
>>> 
>>> text = """\
... Destination Address  Address Type  VLAN  Destination Port
... -------------------  ------------  ----  --------------------
... f02f.7409.5290\t\tDynamic      1    FastEthernet3
... f872.ea83.dbca\t\tSelf      1    Vlan1
... """
>>> 
>>> data = text.splitlines()[2:]
>>> fields = [re.findall(r'\S+', i) for i in data]
>>> dicts = [{'dest': f1, 'type': f2, 'vlan': f3, 'port': f4}
...          for f1, f2, f3, f4 in fields]
>>> dicts
[{'dest': 'f02f.7409.5290', 'type': 'Dynamic', 'vlan': '1', 'port': 'FastEthernet3'}, {'dest': 'f872.ea83.dbca', 'type': 'Self', 'vlan': '1', 'port': 'Vlan1'}]
>>> 
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version