2012-03-05 58 views
0

我在处理我的项目中的一部分时会遇到一些麻烦。基本上我需要采取一个正常的选项卡式文本文件,并将其转换为Ruby中的多维哈希值,以便我可以循环并检测哪些部分有孩子。该文件的一个例子:使用Ruby将选项卡式文本文件转换为MultiDimensional哈希值?

hello 
    world 
    how 
are 
    you 
     today 

将成为:

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

+0

前导空白符实际是制表符还是给定数量的空格? – 2012-03-05 21:22:10

+0

它最好是制表符。与yaml非常相似,只是不需要将值分配给变量。 – andy 2012-03-05 21:23:24

+1

你是什么意思“最好”?如果你的输入文件像这样灵活,那么就使用YAML。 – 2012-03-05 21:24:27

回答

2

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

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

产量:

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

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

相关问题