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

使用Ruamel/YAML如何将含换行字符串输出为块式YAML格式?

解决Ruamel/YAML导出多行内容为|-块样式的问题
  • 核心问题在于Ruamel/YAML不会自动将普通多行字符串识别为块样式,需要手动指定类型,而非单纯替换换行符。

  • 使用LiteralScalarString强制生成块格式:
    从ruamel.yaml.scalarstring导入该类,把新增的Formula内容包装成这个类型,dump时就会自动生成|-块样式。示例代码:

    from ruamel.yaml import YAML
    from ruamel.yaml.scalarstring import LiteralScalarString
    
    yaml = YAML()
    # 加载现有配置
    with open('your_config.yaml', 'r') as f:
        config = yaml.load(f)
    
    # 包装多行Formula内容
    formula_content = """first line of formula
    second line
    third line with logic"""
    config['new_item']['formula'] = LiteralScalarString(formula_content)
    
    # 写入文件
    with open('your_config.yaml', 'w') as f:
        yaml.dump(config, f)
    
  • 处理已有的转义换行字符串:
    如果之前生成的是带\n转义的字符串,先转成真实换行再包装:

    escaped_formula = "line1\\nline2\\nline3"
    raw_formula = escaped_formula.replace('\\n', '\n')
    config['target_item']['formula'] = LiteralScalarString(raw_formula)
    
  • 注意事项:
    保持yaml.preserve_quotes = True(可选)可以保留原有配置的引号格式;Ruamel会自动继承原文件的缩进规则,不需要额外配置缩进参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:24:53