使用Ruby将选项卡式文本文件转换为MultiDimensional哈希?

时间:2012-03-05 21:19:33

标签: ruby

我在为我的项目的一部分计算如何解决这个问题时遇到了一些麻烦。基本上我需要采用一个普通的选项卡式文本文件并将其转换为Ruby中的多维哈希,这样我就可以循环检测哪些部分有子项。该文件的一个示例:

hello
    world
    how
are
    you
        today

会变成:

{'hello' => ['world', 'how'], 'are' => {'you' => ['today']}}

1 个答案:

答案 0 :(得分:2)

由于您的输入格式由您决定,我真的不明白为什么您不使用YAML:

puts { 'hello' => ['world', 'how'], 'are' => { 'you' => ['today'] } }.to_yaml

的产率:

---
hello:
- world
- how
are:
  you:
  - today

当使用该字符串调用YAML.load时,会返回原始数据结构。与您的信念相反,YAML不需要“键值语法”。