""" 竞价金额管理 """ import json from db.redis_manager_delegate import RedisUtils from utils import tool from db import redis_manager_delegate as redis_manager __redisManager = redis_manager.RedisManager(2) def __get_redis(): return __redisManager.getRedis() # 设置竞价资金 # 数据格式[(代码,金额)] def set_bidding_money(datas): money_list = [] for data in datas: money = 0 if data[1].find('亿') > -1: money = round(float(data[1][:-1]) * 10000) else: money = int(data[1][:-1]) money_list.append((data[0], money)) RedisUtils.setex(__get_redis(),"bidding_money", tool.get_expire(), json.dumps(money_list)) # 获取竞价金额 def get_bidding_money(code) -> object: val = RedisUtils.get(__get_redis(), "bidding_money") if not val: return None vals = json.loads(val) for v in vals: if v[0] == code: return v[1] return None bidding_money_cache = {} # 设置缓存(缓存到内存中) def get_bidding_money_cache(code): if code in bidding_money_cache: return bidding_money_cache[code] else: bm = get_bidding_money(code) bidding_money_cache[code] = bm if __name__ == "__main__": # datas = [('002229', '10.92亿'), ('000977', '2592万'), ('000829', '2294万'), ('002467', '1869万'), ('002217', '1546万')] # set_bidding_money(datas) print(get_bidding_money("000977"))