我下载了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)
如果我只想打电话给股票股息,请打电话给我?
答案 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'])
可能是根据您的平台索引列表的正确形式。