2

我在 for 循环中提取元数据值,需要在逗号分隔列表中显示它们。

代码(为可读性添加了空格):

{% if asset.metadata['field01'] %}{{asset.metadata['field01']}}{% endif %}
{% if asset.metadata['field02'] %}{{asset.metadata['field02']}}{% endif %}
{% if asset.metadata['field03'] %}{{asset.metadata['field03']}}{% endif %}

目前这显示为:Field 01 ValueField 02 ValueField 03 Value,但我希望它显示为Field 01 Value, Field 02 Value, Field 03 Value

在每个 if 语句之后手动键入,会在最后一个值之后留下一个逗号。

4

2 回答 2

3

您可能会发现我对这个类似问题的回答很有帮助。

  1. 将每个字段附加到带有分隔符的字符串:

    {% assign metadata = "" %}
    {% if asset.metadata['field01'] %}
      {% capture metadata %}{{ metadata | append: asset.metadata['field01'] | append: "|" }}{% endcapture %}
    {% endif %}
    <!-- repeat for fields 2 & 3 -->
    
  2. 使用splitandjoin格式化输出字符串:

    {{ metadata | split: "|" | join: ", " }}
    

这将确保您的输出中不会出现尾随逗号。

于 2015-09-03T22:03:50.503 回答
1

要从列表中打印逗号分隔的值,您可以使用以下命令:

{%for v in values %} {{v}}{% if forloop.last != true %},{% endif %}{% endfor %}

像这个逗号一样打印在除最后一个元素之外的所有元素之后。

于 2022-01-12T09:32:00.413 回答