j2模板,下面是一个片段:
{% set denyGroups %}
{{lookup('csvfile', '{{ ansible_hostname }} file={{ csvFile }} delimiter=, col=5')}}
{% endset %}
{%- if denyGroups |trim() -%}
simple_deny_groups = {{ denyGroups |replace(";", ",") }}
{%- endif -%}
我正在基于csv值将值注入到模板中。但是,如果在csv中找不到密钥(ansible_hostname),请获取以下错误:AnsibleError: csvfile: list index out of range
如何处理此错误?先检查它是否在csv中。现在我可以在任务中注入值,但这会比较麻烦,我更喜欢这种模板方式。谢谢
list index out of range
-列数有问题。列从零开始计数,因此对于
col=5
-文件中必须有6列。如果您想在键丢失时返回默认项,请使用
default=myvalue
选项。在更新:让我们来看看the code:
所以在这样的csv中:
^{pr2}$键(第0列)是mykey,列1-值a,列2-值b,列3-值c
如果存在格式错误或参数不正确,则会触发异常–您对此无能为力。尝试将
col=4
与我的示例csv文件一起使用将引发list index out of range
异常。在如果在文件中找不到密钥(
row[0] == key
每行都是false),则将返回默认值(使用default=
选项指定的值)。在相关问题 更多 >
编程相关推荐