将以“-”分隔的数字范围拆分为jinja2模板

时间:2019-07-10 08:37:20

标签: python yaml jinja2

我在yaml文件中有一个这样的字符串:

switchport private-vlan trunk allowed vlan: 100-115,1060,1802,1455,1433,1422

通过jinja2模板进行转换,如下所示:

 interface GigabitEthernet100/0/0.100-115
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1060
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1802
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1455
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1433
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1422
 description test02 slot1/1_1G

我在jinja2模板中使用了split(请参见下面的代码部分),因此我可以得到如下所述的结果。

在分割“,”之后,如何使它再次分割找到的数字范围?像这样:如果您看到100-115,请从100开始直到115,这样我就可以在for语句中使用它了。

  {% if lines == "interface GigabitEthernet1/1" %}
  {% for vlan in configIF[lines]['switchport private-vlan trunk allowed vlan'].split(",") %}
 interface GigabitEthernet100/0/0.{{ vlan }}
 description {{ configIF[lines]['description'] }}
   {% endfor %}
  {% endif %}
{{ lines }}
 description {{ configIF[lines]['description'] }}
{% endfor %}

我的结果:

interface GigabitEthernet100/0/0.100-115
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1000
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1402
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1404
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1406
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1414
description test02 slot1/1_1G

预期结果:

interface GigabitEthernet100/0/0.100
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.101
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.102
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.103 ... and so on until 115
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1000
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1402
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1404
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1406
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1414
description test02 slot1/1_1G

0 个答案:

没有答案