【问题标题】:YAML: How can I create a multi-line string of comma delimited values?YAML:如何创建逗号分隔值的多行字符串?
【发布时间】:2016-10-26 04:45:45
【问题描述】:

我正在使用 YAML 为新的 relic 配置文件传入逗号分隔值的字符串以忽略错误。我需要输出如下所示:

"NotFoundError,LocationError,InvalidParamsError"

我尝试使用折叠样式并剥离最后一个换行符。我的 yaml 文件如下所示:

ignore_errors: >-
  NotFoundError,
  LocationError,
  InvalidParamsError

但是,它最终将其他换行符解析为一个空格,这给了我这样的结果:

"NotFoundError, LocationError, InvalidParamsError"

我需要它来解析折叠的字符串而不是添加空格。请帮忙。

【问题讨论】:

  • 您找到解决方案了吗?

标签: string parsing yaml newrelic


【解决方案1】:

这样做的唯一方法是引用您的字符串并使用\ 转义每行的结尾:

ignore_errors: "\
  NotFoundError,\
  LocationError,\
  InvalidParamsError"

【讨论】:

    【解决方案2】:

    不幸的是,我认为 YAML 规范不能让你做你想做的事(this great SO answer 展示了在 YAML 中编写多行字符串的无数方法......但不包括你的用例) .我认为如果可能的话,你最好的选择是将你的错误字符串存储为一个列表,然后使用你的编程语言来格式化列表。 Ruby 中的一个例子是:

    require 'yaml'
    
    yaml = <<-YAML
      ignore_errors:
        - NotFoundError
        - LocationError
        - InvalidParamsError
    YAML
    hash = YAML.load(yaml)
    puts hash["ignore_errors"].join(',')
    

    给你"NotFoundError,LocationError,InvalidParamsError"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 2010-10-28
      • 2015-03-09
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      相关资源
      最近更新 更多