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

Python加载YAML文件报错:无法识别'tag:yaml.org,2002:value'构造器

解决YAML读取时tag:yaml.org,2002:value构造器错误

这个问题是因为YAML中的simple: =会被解析为带有tag:yaml.org,2002:value标签的特殊节点,而safe_load默认没有处理该标签的构造器。无需修改YAML文件,可通过自定义构造器解决:

  • 定义构造函数,专门处理tag:yaml.org,2002:value标签,返回节点的原始值
  • 将构造函数注册到SafeLoader中,再用safe_load读取文件

具体代码示例:

import yaml

def handle_value_tag(loader, node):
    return node.value

# 给SafeLoader注册自定义构造器
yaml.SafeLoader.add_constructor('tag:yaml.org,2002:value', handle_value_tag)

# 读取YAML文件
with open('pathtoyamlfile', 'r') as f:
    data = yaml.safe_load(f)

执行后,data['simple']会被正确解析为字符串"=",同时保留safe_load的安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:05:35