我正在执行一项任务,使用雅虎的股票价格系统从网上检索几个股票价格。不幸的是,我需要使用的Yahoo API返回一个 .csv 文件,该文件显然包含该股票交易的每一天的一行,这对于我正在使用的股票来说至少有 5000 行,超过 10其中一些有千行(例如)。
不过,我只关心当前价格,它位于第二行。
我目前正在这样做:
require 'open-uri'
def get_ticker_price(stock)
open("http://ichart.finance.yahoo.com/table.csv?s=#{stock}") do |io|
io.read.split(',')[10].to_f
end
end
......但它真的很慢。
是所有延迟都来自获取文件,还是我处理它的方式有一些延迟?正在
io.read
读取整个文件吗?有没有办法只下载 Yahoo CSV 文件的前几行?
如果问题 1 和 2 的答案没有使这个问题变得无关紧要,是否有更好的方法来处理它而不需要查看整个文件(假设这
io.read
是在做什么)?