使用Yahoo-Finance Python API的最佳方式

时间:2016-02-16 01:21:36

标签: python regex yahoo-finance

使用Python Yahoo-Finance API输出历史数据的结构如下:

{u'Adj_Close': u'63.209999',
 u'Close': u'63.209999',
 u'Date': u'2015-08-27',
 u'High': u'63.259998',
 u'Low': u'61.080002',
 u'Open': u'61.459999',
 u'Symbol': u'CAM',
 u'Volume': u'22808600'}

处理这些数据的最佳方法是什么?例如,我如何获得63.209999的收盘价?我应该使用正则表达式吗?

2 个答案:

答案 0 :(得分:0)

如图所示,您有dictionary;使用键来访问字典中的值:

>>> d={u'Adj_Close': u'63.209999',
...  u'Close': u'63.209999',
...  u'Date': u'2015-08-27',
...  u'High': u'63.259998',
...  u'Low': u'61.080002',
...  u'Open': u'61.459999',
...  u'Symbol': u'CAM',
...  u'Volume': u'22808600'}
>>> 
>>> 
>>> d['Close']
u'63.209999'
>>> d['High']
u'63.259998'

但是,您可能有一个JSON字符串。如果是这样,您可以使用json.loads()将JSON字符串转换为字典:

>>> s = '{"High": "63.259998", "Volume": "22808600", "Low": "61.080002", "Date": "2015-08-27", "Close": "63.209999", "Symbol": "CAM", "Open": "61.459999", "Adj_Close": "63.209999"}'
>>> import json
>>> d = json.loads(s)
>>> d['Close']
u'63.209999'

答案 1 :(得分:0)

Pandas是处理此类表格问题的优秀库。

你可以这样做

>>> import pandas as pd
>>>
>>> data = {u'Adj_Close': u'63.209999',
...         u'Close': u'63.209999',
...         u'Date': u'2015-08-27',
...         u'High': u'63.259998',
...         u'Low': u'61.080002',
...         u'Open': u'61.459999',
...         u'Symbol': u'CAM',
...         u'Volume': u'22808600'}
>>>
>>> df = pd.DataFrame(data.items())
>>> print df.head()
        0           1
0    High   63.259998
1  Volume    22808600
2     Low   61.080002
3    Date  2015-08-27
4   Close   63.209999

注意:请注意u'Symbol': u'CAM',因为它是scalar value