新浪API
其中symbol 为SH何SZ开头的代码,股票代码可以使用,但是基金是使用不了的。需要另外的地址
其中scale = 5,15,30,60,240
datalen = 获取数据长度,最大1023
def get_stock_data(id, scale, data_len):
'''
symnol = 股票代码
scale = 5,15,30,60,240
datalen = 获取数据长度,最大1023
'''
# 拼接API的url
url = 'http://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol={0}&scale={1}&datalen={2}'.format(id, scale, data_len)
# 发起请求
req = request.Request(url)
# 获取响应
rsp = request.urlopen(req)
# 读取响应结果
res = rsp.read()
# 将json序列转换为Python对象
res_json = json.loads(res)
# bar列表
bar_list = []
# 遍历列表
for dict in res_json:
bar = {}
bar['date'] = dict['day']
bar['open'] = float(dict['open'])
bar['high'] = float(dict['high'])
bar['low'] = float(dict['low'])
bar['close'] = float(dict['close'])
bar['vol'] = int(dict['volume'])
bar_list.append(bar)
# 将结果转换为DataFrame对象
df = pd.DataFrame(data=bar_list)
return df
df = get_stock_data('sz000560', 30, 30)