使用Google财经0.5 pypi检索股票数据

时间:2015-03-28 05:30:05

标签: python google-finance

我下载了Google Finance,并想知道如何提取特定值而不是所有值。这是给出的例子:

>>> from googlefinance import getQuotes
>>> print json.dumps(getQuotes('AAPL'), indent=2)

[
  {
    "Index": "NASDAQ", 
    "LastTradeWithCurrency": "123.25", 
    "LastTradeDateTime": "2015-03-27T16:03:28Z", 
    "LastTradePrice": "123.25", 
    "LastTradeTime": "4:03PM EDT", 
    "LastTradeDateTimeLong": "Mar 27, 4:03PM EDT", 
    "StockSymbol": "AAPL", 
    "ID": "22144"
  }
]

会是什么?
>>> print json.dumps(get(…)('AAPL'), indent=2)
如果我只想打电话给股票股息,请打电话给我?

2 个答案:

答案 0 :(得分:1)

  

想知道如何提取特定值而不是所有值

如果您的通话返回

x = [
  {
    "Index": "NASDAQ",
    "LastTradeWithCurrency": "129.09",
    "LastTradeDateTime": "2015-03-02T16:04:29Z",
    "LastTradePrice": "129.09",
    "Yield": "1.46",
    "LastTradeTime": "4:04PM EST",
    "LastTradeDateTimeLong": "Mar 2, 4:04PM EST",
    "Dividend": "0.47",
    "StockSymbol": "AAPL",
    "ID": "22144"
  }
]

然后x是一个列表,列表中的第一个元素是例如stock = x[0],即:

{
        "Index": "NASDAQ",
        "LastTradeWithCurrency": "129.09",
        "LastTradeDateTime": "2015-03-02T16:04:29Z",
        "LastTradePrice": "129.09",
        "Yield": "1.46",
        "LastTradeTime": "4:04PM EST",
        "LastTradeDateTimeLong": "Mar 2, 4:04PM EST",
        "Dividend": "0.47",
        "StockSymbol": "AAPL",
        "ID": "22144"
      }

因此,为了获得红利,您可以访问关键字“红利”,stock['Dividend'],这会将您的红利值作为字符串,您可以将其转换为浮点数,例如float(stock['Dividend'])

另请试用此yahoo-finance lib https://github.com/lukaszbanasiak/yahoo-finance,因为它有get_dividend_share()(每股股息)和get_dividend_yield()(年度股息/股票价格,以%计)< / p>

答案 1 :(得分:1)

假设KeySaver.getStringSavedShare(this, "your-key"); 。然后,stock = json.dumps(getQuotes('AAPL'), indent=2)返回类型字符串。

您需要做的是跳过将其编码为JSON,因为getQuotes(&#39; AAPL&#39;)已经输出了您想要的列表。相反,保存输出如下:

type(stock)

然后,正如bakkal指出的那样,您可以通过索引来解决列表的特定值,例如: stock=getQuotes('AAPL')

stock[0]

您希望深入了解红利&#39;或者在我的示例中,&#39; LastTradePrice&#39;使用

print  stock[0]
{u'Index': u'NASDAQ', u'LastTradeWithCurrency': u'113.40', u'LastTradeDateTime': u'2015-09-28T13:49:28Z', u'LastTradePrice': u'113.40', u'LastTradeTime': u'1:49PM EDT', u'LastTradeDateTimeLong': u'Sep 28, 1:49PM EDT', u'StockSymbol': u'AAPL', u'ID': u'22144'}

返回:

stock[0]['LastTradePrice']

现在,正如bakkal指出的那样,将我们的价值作为数字只是使用u'113.40'

的问题

<强>更新 以上证实适用于运行Debian Wheezy的RaspberryPi。正如bakkal所证明的那样(并在我的Windows机器上确认)float(stock[0]['LastTradePrice'])可能是根据您的平台索引列表的正确形式。