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

使用Python/Robot Framework读取YAML时遇ON键AttributeError问题咨询

问题原因分析

这是YAML内置布尔类型别名导致的问题:

  • YAML规范中,ON、OFF、YES、NO(大小写不敏感)属于布尔值的隐式别名,默认会被解析为True/False,而非字符串类型的键。
  • 你的YAML里ON未加引号,解析后会变成布尔值True,而非字符串键"ON"。当你尝试用字符串键"ON"访问字典值,或是用Robot Framework的点语法做属性访问时,找不到对应键就会触发AttributeError。
  • 编辑器中ON显示红色,是因为语法高亮工具识别出它是YAML的内置布尔常量,和普通字符串键(比如AB)做了区分。

解决方法

  • 给ON键加引号,强制解析为字符串:
    SectionPage:
      AB: Sample Value AB
      "ON": Sample Value ON
    
  • 如果用Python的PyYAML解析,可配置Loader禁用布尔别名解析:
    import yaml
    from yaml.loader import SafeLoader
    
    # 移除对o/O/y/Y/n/N开头的隐式布尔解析
    SafeLoader.yaml_implicit_resolvers = {
        k: v for k, v in SafeLoader.yaml_implicit_resolvers.items() if k not in {'o', 'O', 'y', 'Y', 'n', 'N'}
    }
    
    with open('your_file.yaml') as f:
        data = yaml.load(f, Loader=SafeLoader)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:42:02