YAML:如何创建逗号分隔值的多行字符串?

时间:2016-06-23 17:50:35

标签: string parsing yaml newrelic

我正在使用YAML为新的relic配置文件传递一串逗号分隔值以忽略错误。我需要输出看起来像这样:

"NotFoundError,LocationError,InvalidParamsError"

我尝试使用折叠样式并剥离最后一个换行符。我的yaml文件看起来像这样:

ignore_errors: >-
  NotFoundError,
  LocationError,
  InvalidParamsError

但是,它将其他换行解析为最后给我这样的空格:

"NotFoundError, LocationError, InvalidParamsError"

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

2 个答案:

答案 0 :(得分:2)

唯一的方法是用双引号引起来并用\转义每一行的结尾:

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

答案 1 :(得分:0)

我不认为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"