Создать словарь в Python - PullRequest
1 голос
/ 10 июля 2020

Мне нужно немного просвещения, чтобы создать словарь из возвращаемого значения. Я могу видеть только последнее значение в словаре.

Значение bgp _net

 network 10.29.92.76 mask 255.255.255.255
 network 10.29.92.77 mask 255.255.255.255
 network 10.29.92.83 mask 255.255.255.255
 network 10.237.32.0 mask 255.255.255.224
 network 10.239.1.101 mask 255.255.255.255
bgp_network_adv = {}
bgp_network = confparse.find_all_children(r"^router bgp")
for network in bgp_network:
    if 'network' in network:
        bgp_net= network.strip().split(' ')[1:4:2]
        bgp_network_adv = {'network':([a for a in bgp_net])}
        print (bgp_network_adv)

Ouput

   {'network': ['10.239.1.101', '255.255.255.255']}

Я ожидаю получить остальную часть значения, хранящегося в словаре.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 10 июля 2020

У вас должен быть уникальный key для каждой пары key/value. В вашем коде вы устанавливаете ключ на network для всех пар. Итак, он перезаписывается. Вам следует поискать другую модель для хранения данных. Одним из способов может быть добавление счетчика к вашему ключу. Например:

network0
network1
network2
...
0 голосов
/ 10 июля 2020

Используйте dict.setdefault с list.extend

Пример:

for network in bgp_network:
    if 'network' in network:
        bgp_net= network.strip().split()[1:4:2]
        bgp_network_adv.setdefault('network',[]).extend(bgp_net)
        print (bgp_network_adv)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...