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

YAML中单行Jinja赋值触发Plain value cannot start with %报错原因咨询

报错触发原因
  • 该报错由VSCode默认搭载的YAML语法校验插件(通常为Red Hat YAML插件)抛出,并非Jinja语法本身存在问题,不会影响Jinja的实际解析与执行。
  • 根据YAML官方语法规则,未用引号、块标记包裹的纯文本值(Plain scalar)不允许以%开头:%是YAML预留的指令指示符,仅可用于%YAML 1.2这类YAML全局指令的开头位置。
  • 单行赋值场景下,整行{%- set my_var = [1, 2, 3, 4, 5, 6, 7] %}未被任何YAML结构包裹,YAML校验器会将整行识别为纯文本值,开头的%直接命中上述语法限制,因此抛出Plain value cannot start with directive indicator character %错误。
  • 多行赋值场景下,列表起始符[后立即换行,YAML校验器会优先识别到这是YAML序列(列表)的起始标记,后续内容均被识别为列表的组成部分,不会将开头的%判定为纯文本值的首字符,因此不会触发校验报错。
常见解决方式
  • 若当前文件为Jinja模板生成YAML的场景,可在VSCode中将文件关联语法修改为Jinja或Jinja2 YAML,即可屏蔽该类误报。
  • 也可在YAML插件的配置项中,添加对应文件或目录的校验排除规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:03