我正在开发一个实现库存数据的项目(在python 2.7中)。我正在使用的模块(yahoo finance https://pypi.python.org/pypi/yahoo-finance)将以以下格式返回历史数据:
print yahoo.get_historical('2014-04-25', '2014-04-29')
[{u'Volume': u'28720000', u'Symbol': u'YHOO', u'Adj_Close': u'35.83', u'High': u'35.89', u'Low': u'34.12', u'Date': u'2014-04-29', u'Close': u'35.83', u'Open': u'34.37'}, {u'Volume': u'30422000', u'Symbol': u'YHOO', u'Adj_Close': u'33.99', u'High': u'35.00', u'Low': u'33.65', u'Date': u'2014-04-28', u'Close': u'33.99', u'Open': u'34.67'}, {u'Volume': u'19391100', u'Symbol': u'YHOO', u'Adj_Close': u'34.48', u'High': u'35.10', u'Low': u'34.29', u'Date': u'2014-04-25', u'Close': u'34.48', u'Open': u'35.03'}]
有什么办法像列表一样解析这些数据吗?我不知道它的格式。有什么简单的方法可以区分当天的高位?我考虑过将其制成字符串并使用类似
string = yahoo.get_historical('2014-04-25', '2014-04-29')
string[13] + string[14] + string[15] ... + string[21] = Volume
但我知道必须有更好的方法来做到这一点。希望这是我想念的简单事情。
这是词典列表,列表中有三项。更容易查看是否使用pprint.pprint()
模块功能:
[{u'Adj_Close': u'35.83',
u'Close': u'35.83',
u'Date': u'2014-04-29',
u'High': u'35.89',
u'Low': u'34.12',
u'Open': u'34.37',
u'Symbol': u'YHOO',
u'Volume': u'28720000'},
{u'Adj_Close': u'33.99',
u'Close': u'33.99',
u'Date': u'2014-04-28',
u'High': u'35.00',
u'Low': u'33.65',
u'Open': u'34.67',
u'Symbol': u'YHOO',
u'Volume': u'30422000'},
{u'Adj_Close': u'34.48',
u'Close': u'34.48',
u'Date': u'2014-04-25',
u'High': u'35.10',
u'Low': u'34.29',
u'Open': u'35.03',
u'Symbol': u'YHOO',
u'Volume': u'19391100'}]
您可以像这样阅读它们:
readings = yahoo.get_historical('2014-04-25', '2014-04-29')
for reading in readings:
print reading['Volume']
当天的最高价可能是:
high_reading = max(readings, key=lambda reading: float(reading['High']))
(该max()
函数返回序列中最大的东西,并提供了一个自定义函数来说明比较项目时应查看的内容)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句