我很難弄清楚如何分割下面的數組並將其轉換爲格式,因此我可以構建一個Active Record的哈希數組。如何分割字符串數組並將其轉換爲散列數
我的問題源於編寫一個依靠Nokogiri從網上抓取信息的應用程序。我試圖提取的表中每一行的數據都被卡在一個單一的<td>
元素中。每行只有一個<td>
元素。
編輯: 第一個網頁包含幾百項<ul>
列表和詳細資料頁面的鏈接。我遍歷每個項目,使用鏈接訪問詳細信息頁面進行解析。我在下面解析的表格元素來自詳細信息頁面。如果你看split_array
的輸出,我給出第一行(第1級)的完整數據,然後是第二行(第2級)的一部分,以顯示它在結構上是相同的,但是沒有價值。解決第一行的問題,解決了所有6行的問題。
<td>
Level 1
<br>
Attribute A: 24%
<br>
Attribute B: 14%
<br>
Attribute C: 15.5%
</td>
我設法以數組的形式獲取以下格式的數據。
row.xpath('tr').each_with_index do |td, j|
split_array << td.text.squish.split('%')
end
這裏是split_array
的部分輸出:我用下面的代碼分裂一長串這樣做
[["Level: 1 Attribute A: 24", "Attribute B: 14", "Attribute C: 15.5"],["Level: 2 Atribute A: 36", ..etc]..etc]
我需要:
- 擺脫
Level: 1
的,Level: 2
...來自每個陣列中的第一個元素 - 拆分
Attribute
Name和th Ë浮點值到自己的領域 轉換的部分成散列的數組,看起來與此類似:
[{:statistic => "Attribute A", :level_1 => 24.0, :level_2 =>36},{:statistic => "Attribute B", :level_1 => 14.0,:level_2 => 24},{:statistic => "Attribute C", :level_1 => 15.5, :level_2 => 34}]
我所要求的代碼,僞代碼,或想法,將發我在正確的方向將我的數組數組轉換爲我上面概述的散列數組。
請閱讀「[mcve]」。我沒有看到示例HTML中的「Level:2」。請確保您的輸入數據符合您的代碼和說明;我們無法擺脫那些不存在的東西。 –
如果您滾動瀏覽,我只展示了級別2的一部分,僅用於說明它在結構上相同但沒有價值。我編輯了我的問題來進一步解釋。 – ctilley79