You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cisco DNAC模板编辑器配置Jinja模板无法拆分HOSTNAME变量问题

问题根因与解决方案

核心错误点

  • 在Jinja控制块({% %})中引用变量时错误添加了{{ }}与引号,导致你实际拆分的是{{ HOSTNAME }}这个字符串字面量,而非HOSTNAME变量的实际值,所以拆分结果只有一个元素,就是完整的主机名字符串。
  • Cisco DNAC模板编辑器使用的是裁剪后的Jinja2运行环境,不支持序列拆包赋值语法,因此多变量同时赋值的split写法会触发语法错误,只能通过索引取值。

正确实现代码

{# 控制块内直接引用变量名,不需要加{{ }}或引号 #}
{% set hname = HOSTNAME %}
Device name is {{ hname }}

{% set list1 = hname.split('-') %}
{% for item in list1 %}
<p>{{ item }}</p>
{% endfor %}

The campus is {{ list1[0] }} 
The building is {{ list1[1] }}
Room number is {{ list1[2] }}
Switch type is {{ list1[3] }}
IP address is {{ list1[4] }}.{{ list1[5] }}.{{ list1[6] }}.{{ list1[7] }}

额外注意事项

如果拆分后仍然无法正常取值,可先添加调试行HOSTNAME变量原始值:{{ HOSTNAME }},变量类型:{{ HOSTNAME.__class__.__name__ }}确认传入的HOSTNAME确实是字符串类型,部分场景下DNAC传入的变量可能是对象类型,需要先调用toString()方法转为字符串再拆分:{% set hname = HOSTNAME.toString() %}

内容的提问来源于stack exchange,提问作者CjD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:45:03