查询相关股票十档行情的方法
2017-01-13 09:10
281 查看
#!/usr/bin/env python3.5 # -*- coding:utf8 -*- import time,os import asyncio import aiohttp # 十档行情 class Leverfun: stock_api = 'https://app.leverfun.com/timelyInfo/timelyOrderForm' def __init__(self): self.stocks_dict = dict() def stocks(self, stock_codes): if type(stock_codes) is not list: stock_codes = [stock_codes] threads = [] for stock in stock_codes: threads.append(self.get_stock_detail(stock)) try: loop = asyncio.get_event_loop() except RuntimeError: loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) loop.run_until_complete(asyncio.wait(threads)) return self.stocks_dict async def get_stock_detail(self, stock_code): params = dict(stockCode=stock_code) async with aiohttp.get(Leverfun.stock_api, params=params) as r: r_json = await r.json() self.stocks_dict[stock_code] = Leverfun.format_response_data(r_json) @classmethod def format_response_data(cls, response_data, **kwargs): data = response_data['data'] buys = data['buyPankou'] sells = data['sellPankou'] stock_dict = dict( close=round(data['preClose'], 3), now=data['match'], buy=buys[0]['price'], sell=sells[0]['price'], ) for trade_info_li, name in zip([sells, buys], ['ask', 'bid']): for i, trade_info in enumerate(trade_info_li): stock_dict['{name}{index}'.format(name=name, index=i + 1)] = trade_info['price'] stock_dict['{name}{index}_volume'.format(name=name, index=i + 1)] = trade_info['volume'] * 100 return stock_dict if __name__ == "__main__": code = "" if code == "": code = input("请输入代码:") if code: # 实例化十档行情 q = Leverfun() while True: # d_sina = quotaion_sina(code) d_lf = q.stocks(code) os.system("cls") mydata = """ 现价:%s 元 卖十价:%s 卖十量:%s 手 买十价:%s 买十量:%s 手 卖九价:%s 卖九量:%s 手 买九价:%s 买九量:%s 手 卖八价:%s 卖八量:%s 手 买八价:%s 买八量:%s 手 卖七价:%s 卖七量:%s 手 买七价:%s 买七量:%s 手 卖六价:%s 卖六量:%s 手 买六价:%s 买六量:%s 手 卖五价:%s 卖五量:%s 手 买五价:%s 买五量:%s 手 卖四价:%s 卖四量:%s 手 买四价:%s 买四量:%s 手 卖三价:%s 卖三量:%s 手 买三价:%s 买三量:%s 手 卖二价:%s 卖二量:%s 手 买二价:%s 买二量:%s 手 卖一价:%s 卖一量:%s 手 买一价:%s 买一量:%s 手 """ %(d_lf[code]['now'],d_lf[code]['ask10'],d_lf[code]['ask10_volume']/100,d_lf[code]['bid10'],d_lf[code]['bid10_volume']/100, d_lf[code]['ask9'],d_lf[code]['ask9_volume']/100,d_lf[code]['bid9'],d_lf[code]['bid9_volume']/100, d_lf[code]['ask8'],d_lf[code]['ask8_volume']/100,d_lf[code]['bid8'],d_lf[code]['bid8_volume']/100, d_lf[code]['ask7'],d_lf[code]['ask7_volume']/100,d_lf[code]['bid7'],d_lf[code]['bid7_volume']/100, d_lf[code]['ask6'],d_lf[code]['ask6_volume']/100,d_lf[code]['bid6'],d_lf[code]['bid6_volume']/100, d_lf[code]['ask5'],d_lf[code]['ask5_volume']/100,d_lf[code]['bid5'],d_lf[code]['bid5_volume']/100, d_lf[code]['ask4'],d_lf[code]['ask4_volume']/100,d_lf[code]['bid4'],d_lf[code]['bid4_volume']/100, d_lf[code]['ask3'],d_lf[code]['ask3_volume']/100,d_lf[code]['bid3'],d_lf[code]['bid3_volume']/100, d_lf[code]['ask2'],d_lf[code]['ask2_volume']/100,d_lf[code]['bid2'],d_lf[code]['bid2_volume']/100, d_lf[code]['ask1'],d_lf[code]['ask1_volume']/100,d_lf[code]['bid1'],d_lf[code]['bid1_volume']/100, ) print(mydata) time.sleep(3)
相关文章推荐
- MYSQL 多关键字相关文章查询方法
- Java中利用散列表实现股票行情的查询
- Mybatis like 查询 防止SQL注入方法相关原理和解决方法整理
- 数据统计例子,相关子查询!(SQL 中循环操作一列数据方法)
- Windows8系统安装下载股票等相关软件时乱码解决方法
- 4.4、Libgdx使用方法查询运行环境相关属性
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- C# 调用IP库(QQWry.Dat)查询IP位置及自动升级IP库方法(附IP库下载地址及相关dll下载)
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- 免费的api数据接口-股票行情查询api
- 微信公众平台-股票行情查询
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- MySQL时间日期查询相关函数与方法
- C# 调用IP库(QQWry.Dat)查询IP位置及自动升级IP库方法(附IP库下载地址及相关dll下载)
- 4.4、Libgdx使用方法查询运行环境相关属性
- drill 查询hbase和hdfs数据的相关配置以及查询方法
- Java中利用散列表实现股票行情的查询
- 利用散列表实现股票行情的查询
- 数据统计例子,相关子查询!(SQL 中循环操作一列数据方法)