0

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

>>> 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)

例如,如果我只想打电话给股票股息,打电话给我?

4

2 回答 2

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 是一个列表,列表中的第一个元素是 eg 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"
      }

因此,要获得股息,您可以访问键 'Dividend', stock['Dividend'],这会将您的股息值作为字符串获取,您可以将其转换为浮点数,例如float(stock['Dividend'])

也试试这个yahoo-financehttps://github.com/lukaszbanasiak/yahoo-finance,因为它有get_dividend_share()(每股股息)和get_dividend_yield()(年度股息/股价,以%为单位)

于 2015-03-28T07:18:49.793 回答
1

假设stock = json.dumps(getQuotes('AAPL'), indent=2)。然后,type(stock)返回类型字符串。

您需要做的是跳过将其编码为 JSON,因为 getQuotes('AAPL') 已经将您想要的内容输出为列表。相反,像这样保存输出:

stock=getQuotes('AAPL')

然后,正如 bakkal 指出的那样,您可以通过索引来处理列表的特定值,例如stock[0].

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'}

您需要深入了解“股息”,或者在我的示例中,使用“LastTradePrice”

stock[0]['LastTradePrice']

这将返回:

u'113.40'

现在,也正如 bakkal 指出的那样,将我们的价值作为一个数字只是一个使用问题float(stock[0]['LastTradePrice'])

更新 上述内容已确认可在运行 Debian Wheezy 的 RaspberryPi 上工作。正如 bakkal 所证明的(并在我的 Windows 机器上确认)stock['LastTradePrice']可能是索引列表的正确形式,具体取决于您的平台。

于 2015-09-28T18:16:15.633 回答