使用 .map 在 Ruby 中创建多个没有分隔符的数组
Using .map creates multiple arrays without a separator in Ruby
我正在使用 Nokogiri 从 HTML 文档中的 HTML table 中提取数据。
document = Nokogiri::HTML(File.open("webpage.html"))
tables = document.search('table')
table = tables.first # first table in the document
document.at('table').search('tr').each do |row|
cells = row.search('th, td').map { |cell| cell.text.strip }.values_at(0, 2) #select first and second column value
end
当我映射提取的文本时,它创建了许多数组,没有分隔符(打印输出):
["1972", ",500.00"]["1973", ",600.00"]["1974", ",600.00"]["1975", ",400.00"]["1976", ",300.00"]["1977", ",300.00"]["1978", ",400.00"]
我的目标是拥有一个如下所示的散列:
{"1972" => ",500.00", "1973" => ",600.00", "1974" => ",600.00", "1975" => ",400.00", "1976" => ",300.00", "1977" => ",300.00", "1978" => ",400.00"}
如果我使用映射迭代器创建嵌套数组,我应该能够处理它,但无论我在做什么,都是在创建多个没有分隔符(逗号)的数组。
我什至不知道如何称呼我在以下情况下收到的输出:
print cells
或者,如何将这些没有分隔符的多个数组转换为我想要的哈希格式?
您实际上并不是在映射结果,而是在迭代并丢弃它们。也许你的意思是:
data = document.at('table').search('tr').map do |row|
row.search('th, td').map { |cell| cell.text.strip }.values_at(0, 2).to_h
end
什么会 return 数组中每行一个散列。
我正在使用 Nokogiri 从 HTML 文档中的 HTML table 中提取数据。
document = Nokogiri::HTML(File.open("webpage.html"))
tables = document.search('table')
table = tables.first # first table in the document
document.at('table').search('tr').each do |row|
cells = row.search('th, td').map { |cell| cell.text.strip }.values_at(0, 2) #select first and second column value
end
当我映射提取的文本时,它创建了许多数组,没有分隔符(打印输出):
["1972", ",500.00"]["1973", ",600.00"]["1974", ",600.00"]["1975", ",400.00"]["1976", ",300.00"]["1977", ",300.00"]["1978", ",400.00"]
我的目标是拥有一个如下所示的散列:
{"1972" => ",500.00", "1973" => ",600.00", "1974" => ",600.00", "1975" => ",400.00", "1976" => ",300.00", "1977" => ",300.00", "1978" => ",400.00"}
如果我使用映射迭代器创建嵌套数组,我应该能够处理它,但无论我在做什么,都是在创建多个没有分隔符(逗号)的数组。
我什至不知道如何称呼我在以下情况下收到的输出:
print cells
或者,如何将这些没有分隔符的多个数组转换为我想要的哈希格式?
您实际上并不是在映射结果,而是在迭代并丢弃它们。也许你的意思是:
data = document.at('table').search('tr').map do |row|
row.search('th, td').map { |cell| cell.text.strip }.values_at(0, 2).to_h
end
什么会 return 数组中每行一个散列。