0

我正在尝试使用 Yahoo Finance API 创建自定义 csv,但根据库存情况,存在字段错位。

例如,如果我只想下载对应于最后交易规模的 yahoo 的“k3”字段,我会像这样制作 url:

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

但是,如果您下载该 csv,则有两列数据。

同样,如果我决定获取 Float Shares ,我想要 url:

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

但是,这给了我 3 列。有没有办法让它恰好在一列中?我想自动化这个过程,但是不同的列方向使它变得非常困难,因为不同的行有不同的列长度,我无法轻松地将列名与行匹配。

奖励:如果有人能解释 3 个浮动份额数字的来源,那就太好了,我似乎只能将第一个与该网站相匹配......

谢谢您的帮助!

4

2 回答 2

1

简而言之,您描述的是雅虎不会修复的已知错误,因为官方不支持该提要。

具体重新。浮点数(f6):返回的数字整个浮点数。它不是 3 个 csv 数字。逗号不是分隔符;相反,它们是 1,000s 分隔符。(我怀疑 K3 也是如此。就像其他几个已知数字一样。(见下面的链接。))

两种解决方案: (1) 在代码中使用条件语句(if 或 case)编写自己的解决方法。(2) 将有问题的参数与干净的参数分开下载。

请参阅:雅虎对您问题的官方回复。

于 2014-02-23T09:55:31.990 回答
0

多列是因为 excel(或您正在使用的任何 csv 查看器)将“千分隔符”视为“逗号分隔符”。我们曾经在我们的学校项目中遇到过这个问题,并且发现了一个只有当您将此 api 用于一些爱好项目而不涉及数据使用的情况下才有用的 hack。

这个想法不是将结果视为 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 回答