def collect_margin_trading(req_url): html = send_request(req_url) margin_data = eval(html) for i in margin_data: margin_item = i.decode('utf-8').split(',') stock_number = margin_item[0] stock_name = margin_item[2] rz_net_buy_amount = margin_item[3] rq_repay_volume = margin_item[5] rq_sell_volume = margin_item[6] rq_remaining_volume = margin_item[8] rz_repay_amount = margin_item[9] rz_buy_amount = margin_item[10] rz_remaining_amount = margin_item[12] smt = SMT(stock_number=stock_number, stock_name=stock_name, rz_net_buy_amount=rz_net_buy_amount, rq_repay_volume=rq_repay_volume, rq_sell_volume=rq_sell_volume, rq_remaining_volume=rq_remaining_volume, rz_repay_amount=rz_repay_amount, rz_buy_amount=rz_buy_amount, rz_remaining_amount=rz_remaining_amount) if not is_duplicate(smt): smt.save()
def is_duplicate(smt): duplicate_data = SMT.objects(Q(stock_number=smt.stock_number) & Q(stock_name=smt.stock_name) & Q(rz_net_buy_amount=smt.rz_net_buy_amount) & Q(rq_repay_volume=smt.rq_repay_volume) & Q(rq_sell_volume=smt.rq_sell_volume) & Q(rq_remaining_volume=smt.rq_remaining_volume) & Q(rz_repay_amount=smt.rz_repay_amount) & Q(rz_buy_amount=smt.rz_buy_amount) & Q(rz_remaining_amount=smt.rz_remaining_amount)) if duplicate_data: return True else: return False