gpt4 book ai didi

arrays - Ruby:删除哈希数组中的空括号

转载 作者:数据小太阳 更新时间:2023-10-29 07:14:08 26 4
gpt4 key购买 nike

我正在抓取的内容包括一些空白元素。如果没有数据(最好),我要么需要停止设置变量,要么之后做一些手术并完全删除包含空白的哈希值。

这是我的抓取代码:

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"
}
]

我想完全摆脱空散列!有人知道我在这里弄错了什么吗?

最佳答案

你可以使用Array#delete_if

arr = [{}, {}]
arr.delete_if &:empty?
# i.e. arr.delete_if { |hash| hash.empty? }
arr.empty?
# => true

更新

在 Rails 6.1+ 中有 Array#compact_blank!还有

关于arrays - Ruby:删除哈希数组中的空括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41176264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com