| | |
| | | import enum |
| | | import json |
| | | |
| | | |
| | |
| | | # (代码,名称,涨幅,板块,实际流通) |
| | | # (0,1,4,11,15) |
| | | |
| | | TYPE_BIDDING = 8 |
| | | TYPE_LIMIT_UP = 1 |
| | | TYPE_OPEN_LIMIT_UP = 2 |
| | | TYPE_LIMIT_DOWN = 3 |
| | | TYPE_EVER_LIMIT_DOWN = 5 |
| | | DABAN_TYPE_BIDDING = 8 |
| | | DABAN_TYPE_LIMIT_UP = 1 |
| | | DABAN_TYPE_OPEN_LIMIT_UP = 2 |
| | | DABAN_TYPE_LIMIT_DOWN = 3 |
| | | DABAN_TYPE_EVER_LIMIT_DOWN = 5 |
| | | |
| | | |
| | | def __parseItemData(data, type): |
| | | if type == TYPE_BIDDING: |
| | | class KPLDataType(enum.Enum): |
| | | BIDDING = "biddings" |
| | | LIMIT_UP = "limit_up" |
| | | OPEN_LIMIT_UP = "open_limit_up" |
| | | LIMIT_DOWN = "limit_down" |
| | | EVER_LIMIT_DOWN = "ever_limit_down" |
| | | FENG_KOU = "feng_kou" |
| | | BEST_FENG_KOU = "best_feng_kou" |
| | | FENG_XIANG = "feng_xiang" |
| | | INDUSTRY_RANK = "industry_rank" |
| | | |
| | | |
| | | def __parseDaBanItemData(data, type): |
| | | if type == DABAN_TYPE_BIDDING: |
| | | return data[0], data[1], data[18], data[11], data[22], data[15] |
| | | elif type == TYPE_LIMIT_UP: |
| | | elif type == DABAN_TYPE_LIMIT_UP: |
| | | return data[0], data[1], data[6], data[25], data[9], data[16], data[11], data[15], data[12] |
| | | elif type == TYPE_OPEN_LIMIT_UP: |
| | | elif type == DABAN_TYPE_OPEN_LIMIT_UP: |
| | | return data[0], data[1], data[4], data[11], data[15] |
| | | elif type == TYPE_LIMIT_DOWN: |
| | | elif type == DABAN_TYPE_LIMIT_DOWN: |
| | | return data[0], data[1], data[11], data[15] |
| | | elif type == TYPE_EVER_LIMIT_DOWN: |
| | | elif type == DABAN_TYPE_EVER_LIMIT_DOWN: |
| | | return data[0], data[1], data[4], data[11], data[15] |
| | | |
| | | return None |
| | | |
| | | |
| | | def parseData(data, type): |
| | | data = json.loads(data) |
| | | if data["errcode"] != 0: |
| | | # 最强风口 |
| | | # (代码,名称,强度,涨幅,热门板块,所有板块) |
| | | def __parseBestFengKouItemData(data): |
| | | return data[0], data[1], data[2], data[4], data[12], data[10] |
| | | |
| | | |
| | | # 市场风口 |
| | | # (代码,名称,涨幅,主力净额,风口概念) |
| | | def __parseFengKouItemData(data): |
| | | return data[0], data[1], data[3], data[7], data[11] |
| | | |
| | | |
| | | # 风向标 |
| | | # (代码, 名称, 现价, 涨幅, 板块, 300万大单净额, 主力净额, 自由市值) |
| | | def __parseFengXiangBiaoItemData(data): |
| | | return data[0], data[1], data[5], data[6], data[4], data[-3], data[13], data[10] |
| | | |
| | | |
| | | # 行业涨幅 |
| | | # (代码,名称,主力净额,涨跌幅) |
| | | def __parseIndustry_rank(data): |
| | | return data[0], data[1], data[6], data[3] |
| | | |
| | | |
| | | def parseDaBanData(data, type_): |
| | | if type(data) == str: |
| | | data = json.loads(data) |
| | | if int(data["errcode"]) != 0: |
| | | raise Exception(f"解析数据出错,errcode:{data['errcode']}") |
| | | list_ = data["list"] |
| | | fresult_ = [] |
| | | for d in list_: |
| | | pdata = __parseItemData(d, type) |
| | | pdata = __parseDaBanItemData(d, type_) |
| | | if pdata: |
| | | fresult_ .append(pdata) |
| | | return fresult_ |
| | | fresult_.append(pdata) |
| | | return fresult_ |
| | | |
| | | |
| | | def parseFengKou(data): |
| | | if type(data) == str: |
| | | data = json.loads(data) |
| | | if int(data["errcode"]) != 0: |
| | | raise Exception(f"解析数据出错,errcode:{data['errcode']}") |
| | | list_ = data["List"] |
| | | fresult_ = [] |
| | | for d in list_: |
| | | pdata = __parseFengKouItemData(d) |
| | | if pdata: |
| | | fresult_.append(pdata) |
| | | return fresult_ |
| | | |
| | | |
| | | def parseBestFengKou(data): |
| | | if type(data) == str: |
| | | data = json.loads(data) |
| | | if int(data["errcode"]) != 0: |
| | | raise Exception(f"解析数据出错,errcode:{data['errcode']}") |
| | | list_ = data["List"] |
| | | fresult_ = [] |
| | | for d in list_: |
| | | pdata = __parseBestFengKouItemData(d) |
| | | if pdata: |
| | | fresult_.append(pdata) |
| | | return fresult_ |
| | | |
| | | |
| | | def parseFengXiang(data): |
| | | if type(data) == str: |
| | | data = json.loads(data) |
| | | if int(data["errcode"]) != 0: |
| | | raise Exception(f"解析数据出错,errcode:{data['errcode']}") |
| | | list_ = data["list"] |
| | | fresult_ = [] |
| | | for d in list_: |
| | | pdata = __parseFengXiangBiaoItemData(d) |
| | | if pdata: |
| | | fresult_.append(pdata) |
| | | return fresult_ |
| | | |
| | | |
| | | def parseIndustryRank(data): |
| | | if type(data) == str: |
| | | data = json.loads(data) |
| | | if int(data["errcode"]) != 0: |
| | | raise Exception(f"解析数据出错,errcode:{data['errcode']}") |
| | | list_ = data["list"] |
| | | fresult_ = [] |
| | | for d in list_: |
| | | pdata = __parseIndustry_rank(d) |
| | | if pdata: |
| | | fresult_.append(pdata) |
| | | return fresult_ |