2013-10-02 64 views
1

我正在採取一個符號,並要求雅虎財經的Web服務獲取該符號(公司)的數據。Ruby CSV ::表讀取第一行

它返回一個CSV::Table當我做如下操作:

symbols_list.each{|symbol| 
       table= CSV.parse open("http://ichart.finance.yahoo.com/table.csv?s=#{URI.encode(symbol)}").read, :headers=>true, :converters=>:numeric 

輸出是CSV::Table與頭的每一行。但是,我想從結果中僅提取第一行並獲取該行的一部分。

我試過使用table.push,但它打印了所有的行而不是一個。

+0

你所說的「只有第一行‘和’部分的意思「你有沒有試過打開你的終端,看看你能從中得到什麼樣的價值? –

回答

2

這是我得到的,在命令行上亂搞:

[16] pry(main)> table= CSV.parse open("http://ichart.finance.yahoo.com/table.csv?s=GOOG").read, :headers=>true, :converters=>:numeric 
=> #<CSV::Table mode:col_or_row row_count:2297> 
[17] pry(main)> table.first 
=> #<CSV::Row "Date":"2013-10-01" "Open":880.25 "High":887.67 "Low":880.05 "Close":887.0 "Volume":1684800 "Adj Close":887.0> 
[18] pry(main)> table.first.first 
=> ["Date", "2013-10-01"] 

爲了讓收盤價:

[23] pry(main)> table.first["Close"] 
=> 887.0 
+0

我想從第一行中提取收盤價,即」Close「,我應該如何? –

+0

這只是答案I打算給!作爲補充說明,[此前的問答](http://stackoverflow.co m/questions/11497722/how-can-i-quick-get-a-string-from-one-of-first-couple-lines-of-a-long-csv?rq = 1)表明如何查詢今天的數據,因此您無需爲每個代碼行符號下載數千行代碼。 –

+0

更新了我的答案。 –