0

Yahoo Finance API を使用してカスタム csv を作成しようとしていますが、在庫によってはフィールドのずれがあります。

たとえば、最後の取引サイズに対応する yahoo の「k3」フィールドをダウンロードしたい場合は、次のように URL を作成します。

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

ただし、そのcsvをダウンロードすると、2列のデータがあります。

同様に、 Float Shares を取得する場合は、次の URL が必要です。

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

しかし、それは私に3列を与えます。正確に1列で取得する方法はありますか? このプロセスを自動化したいのですが、行ごとに列の長さが異なるため、列の向きが異なると非常に難しくなり、列名と行を簡単に一致させることができません。

おまけ: 誰かが 3 つのフロート シェアの数字がどこから来たのか説明できれば、それは素晴らしいことです。

ご協力ありがとうございました!

4

2 に答える 2

1

要するに、フィードが正式にサポートされていないため、Yahoo が修正しない既知のバグについて説明しています。

具体的には再。Float (f6): 返される数値はfloat全体です。3つのcsv番号ではありません。コンマは区切り文字ではありません。むしろ、1,000 の区切り文字です。(K3 の場合も同じだと思います。他のいくつかの既知の番号と同様です。(以下のリンクを参照してください。))

2 つの解決策: (1) コードで条件文 (if または case) を使用して独自の回避策を記述します。(2) バグのあるパラメータをクリーンなパラメータとは別にダウンロードします。

参照:あなたの質問に対する Yahoo の公式回答。

于 2014-02-23T09:55:31.990 に答える
0

複数の列は、そのExcel(または使用しているcsvビューア)が「千区切り」を「カンマ区切り」として扱うためです。私たちは学校のプロジェクトでこの問題を抱えていましたが、この API を趣味のプロジェクトに使用し、データの使用に関係しない場合にのみ有効なハックを見つけました。

アイデアは、結果を csv として扱う代わりに、事前に値がわかっている静的な列 (列 A) を選択するか (列の株式記号など)、この値を最初の列として配置することです。クエリを作成するときは、この列を使用して、書式設定の問題がある列 (浮動列) を囲みます。quotes.csv を取得したら、手動で列 A の値の結果を分離します。

たとえば、

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

あなたを取得します

"YHOO", 887,675,000,"YHOO",400,"YHOO",N/A

次に,"YHOO",、結果を分離するために使用します (最初の列を除く)。

問題を解決するためのエレガントな方法ではありませんが、少なくとも正しい結果が得られます。

于 2015-02-11T07:38:39.567 に答える