4
我正在抓取的內容包含一些空白元素。如果沒有數據(最好)或者之後做一些手術並且完全刪除包含空白的散列,我需要停止設置變量。Ruby:刪除哈希數組中的空括號
這裏是我刮代碼:
eqs = []
nokogiri_page.xpath('//table/tr').each do |row|
date = row.xpath('td[1]/a/text()').text.strip
location = row.xpath('td[5]/text()').text.strip
eqs.push(
date: date,
location: location
)
end
有些是空白,我不知道哪個先。所以,我想遍歷數組在與刪除空白值:
eqs.each do |event|
event.reject! {|k, v| v.empty? || v==" " || v=="" }
end
這成功地消除空白鍵和值,但我仍然只剩下空的大括號...
輸出:
[
{},
{},
{},
{
:date=>"2016-12-14 13:19:55",
:location=>"Myanmar"
},
{
:date=>"2016-12-13 17:57:04",
:location=>"Northern Sumatra, Indonesia"
}
]
我想徹底擺脫空的哈希!任何人都知道我在這裏錯了什麼?
如果運行陣列並運行相同的拒絕(?空)它應該做的伎倆 –
你已經知道如何'拒絕',所以'!拒絕!'你不想從頂層數組中獲得的元素。 – meagar
'eqs.reject(&:empty?)。each ...' –