2013-10-28 148 views
0

我正在嘗試使用雅虎財務API創建自定義CSV但取決於股票存在字段錯位。雅虎財務API字段錯位

舉例來說,如果我只是想下載「K3」字段對應於最後交易規模雅虎,我會手藝,像這樣的網址:

http://finance.yahoo.com/d/quotes.csv?s=yhoo&f=k3

不過,如果你下載csv有兩列數據。

同樣,如果我決定要浮法股份,我想要的網址:

http://finance.yahoo.com/d/quotes.csv?s=yhoo&f=f6

但是這給了我3列。有沒有一種方法可以將它完全放在一列中?我想自動執行此過程,但不同的列方向使其非常困​​難,因爲不同的行具有不同的列長度,我無法輕鬆地將列名稱與行匹配。

獎勵:如果有人能解釋其中來自這3個浮動的份額數將是巨大的,我似乎只能匹配第一個到現場...

謝謝您的幫助!

回答

1

總之,您正在描述雅虎不會修復的已知錯誤,因爲該Feed正式不受支持。

特別指出。浮動(f6):返回的數字整個浮動。這不是3個csv數字。逗號不是分隔符;相反,他們是1000個分隔符。 (我懷疑K3的情況也是如此,因爲它與其他已知數字一樣(請參閱下面的鏈接))

兩種解決方案: (1)使用條件語句編寫自己的解決方法(if情況)在你的代碼。 (2)與乾淨的參數分開下載車輛參數。

參見:Yahoo's official reply to your question.

0

的多個列是因爲擅長(或任何CSV瀏覽器使用的是)治療「千分隔符」作爲了「逗號分隔符」。我們曾經在我們的學校項目中遇到過這個問題,並且發現只有在您將這個api用於某項業餘愛好項目而不涉及數據使用情況時,這種做法纔是有效的。

這個想法不是將結果視爲csv,而是選擇一個靜態列(列A),您可以事先知道該值(例如列的'股票代碼),或將該值作爲第一列。在構建查詢時,請使用此列來圍繞具有格式問題的列(浮動列)。一旦獲得quotes.csv,手動分離A列值的結果。使用

http://download.finance.yahoo.com/d/quotes.csv?s=yhoo&f=sf6sa5sb6

將讓你

「YHOO」 887675000 「YHOO」,400, 「雅虎」,N/A

然後使用,"YHOO",

例如分離結果(不包括第一欄)。

不是一種解決問題的方法,但至少它會給你正確的結果。