2012-03-05 53 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不需要「鍵值語法」。

相關問題