Найти - Пользователи
Полная версия: Формирование двумерного списка из вывода
Начало » Python для новичков » Формирование двумерного списка из вывода
1
svm1987
Добрый день!

Допустим с помощью библиотеки 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.
py.user.next
Передай точно то, что приходит. Используй тег code.
[code]
тут пишешь результат от netmiko
[/code]
svm1987
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:~$
py.user.next
  
>>> 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'}]
>>> 
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB