【问题标题】:How can one parse this in Yaml?如何在 Yaml 中解析这个?
【发布时间】:2023-03-08 12:24:02
【问题描述】:

假设我有这个例子:

Example:
  number:
    cuarenta
    cuarenta y uno
    cuarenta y dos
    cuarenta y tres
    cuarenta y cuatro
    cuarenta y cinco
    cuarenta y seis
    cuarenta y siete
    cuarenta y ocho
    cuarenta y nueve

我想解析这个,以便将这些数字中的每一个都放在一起,就像“cuaranta y nueve”一样。我无法想象如何做到这一点,因为在 YAML 中,你变成了一个与“名词”相关联的字符串。

我的 yaml 解析器如下所示:

  File.open(Rails.root + 'lib/words/yamlicious.yml', 'r') do |file|
    YAML::load(file).each do |topic, word_types|
      temp_topic = Topic.create! name: topic
      temp_words = word_types.map{|type, words| words.split(' ').map {|word| Word.create type: type, word: word, topics: [temp_topic] } }
      temp_topic.words << temp_words
    end
  end

请注意 split 部分会破坏这一点,因为这样我会根据我的示例创建一个单词,即三个单词“cuarenta”、“y”和“uno”。

【问题讨论】:

    标签: ruby parsing yaml


    【解决方案1】:

    要保留换行符,您必须使用pipe character

    Example:
      number: |
        cuarenta
        cuarenta y uno
        cuarenta y dos
        …
    

    现在你可以split("\n")

    【讨论】:

    • 啊天哪,我没见过这个!谢谢斯特凡!
    猜你喜欢
    • 1970-01-01
    • 2019-02-13
    • 2011-04-22
    • 2010-12-18
    • 2017-06-03
    • 2021-11-04
    • 2022-12-22
    • 2018-05-11
    相关资源
    最近更新 更多