TypeError:-:“未定义”和“未定义”的不受支持的操作数类型

问题描述

下面我将其定义为变量文件bgp_vars.csv

0.0

我有以下模板文件bgp_config.j2

local_as,peer1_ip,peer1_as,advertised_routes,route-map-out,route-map-in,prefix-list-1,prefix-list-2
10,10.10.10.10,20.20.20.20,10.10.10.0/24 10.10.20.0/24 10.10.30.0/24,accepted_routes,advertised-routes,accepted-routes

我的主要代码如下:

feature bgp
router bgp {{ local_as }}
    address-family ipv4 unicast
        {%- for route in advertised_network %}
        network {{ route }}
        {%- endfor %}
    neighbor {{ peer1_ip }} remote-as {{ peer1_as }}
        update-source loopback1
        ebgp-multihop 2
        addres-family ipv4 unicast
        route-map {{ route-map-out }} out
        route-map {{ route-map-in }} in

route-map {{ route-map-out }} permit 10
match ip address prefix-list {{ prefix-list-1 }}
set as-path prepend 65100 65100 65100
route-map {{ route-map-out }} deny 20
!
route-map {{ route-map-in }} permit 10
match ip address prefix-list {{ prefix-list-2 }}
set local-as 300
route-map {{ route-map-in }} deny 20
!
ip prefix-list {{ prefix-list-1 }} seq 10 permit 10.10.10.0/24
ip prefix-list {{ prefix-list-2 }} seq 10 permit 10.10.20.0/24

我在执行此代码时遇到错误,所以可能是导致此错误的原因。

#!/usr/bin/env python
from __future__ import print_function,unicode_literals
import jinja2
import csv

csv_file = "bgp_vars.csv"
with open(csv_file) as f:
    read_csv = csv.DictReader(f)
    for bgp_vars in read_csv:
        advertised_routes = bgp_vars['advertised_routes']
        advertised_routes = advertised_routes.split()
        bgp_vars['advertised_routes'] = advertised_routes

        template_file = "bgp_config.j2"
        with open (template_file) as f:
            bgp_template = f.read()

        template = jinja2.Template(bgp_template)
        print()
        print('-' * 80)
        print(template.render(bgp_vars))
        print('-' * 80)
        print()

如果有人可以帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)