def result_list_to_array(data): sdata = [] def fixBadData(x): return '-' if math.isnan(x) else x for index, row in data.iterrows(): sdata.append( {'name': row['name'], 'code': row.code, 'industry': row.industry, 'tag': row.tag if hasattr(row, 'tag') else '', 'ncode': fn.code_to_ncode(row.code), 'pcode': row['code'] + ('01' if row['code'][:2] == '60'else '02'), 'price': fixBadData(row.close), 'mvalue': fixBadData(round(row.t_cap / (10000 * 10000), 2)), 'pe': fixBadData(round(row.t_cap / (row.jlr_ttm * 10000), 2)), 'ps': fixBadData(round(row.t_cap / (row.zyysr_ttm * 10000), 2)), 'pcf': fixBadData(round(row.t_cap / (row.jyjxjl_ttm * 10000), 2)), 'pb': fixBadData(round(row.t_cap / (row.gdqy * 10000), 2)), 'roe': fixBadData(round(row.jlr_ttm * 100.0 / row.gdqy, 2)), 'dar': fixBadData(round(row.zfz * 100.0 / (row.zzc), 2)), 'jlr_rate': fixBadData(round(row['jlr_rate'] * 100.0, 2)), 'cash_rate': fixBadData(round(row.jyjxjl_ttm * 1.0 / row.jlr_ttm, 2)), # 现金净利润比 'report_type': '-' if pd.isnull(row.report_type) else row.report_type } ) return sdata
def query(): query = request.args.get('query') df = ds.get_global_basic_data() df = df[(df['name'].str.contains(query)) | (df.index.str.contains(query))] result = [] for index, row in df.iterrows(): result.append( {'id': index, 'name': row['name'], 'ncode': fn.code_to_ncode(index)} ) return jsonify(result=result)
def findStockJson(): skey = request.args.get('skey') result = [] st_result = dts.findStocksByHolder(skey) def fixBadData(x): import math return '-' if math.isnan(x) else round(x, 2) for r in st_result: report_date = r['report_date'].strftime('%Y-%m-%d') df = r['data'] tableData = [] for index, row in df.iterrows(): tableData.append({ 'name': row['name'], 'code': row.code, 'holder_name': row.holder_name, 'holder_code': row.holder_code, 'hold_length': row.hold_length, 'stock_industry': row.industry, 'ncode': fn.code_to_ncode(row.code), 'pcode': row['code'] + ('01' if row['code'][:2] == '60' else '02'), 'price': fixBadData(row.close), 'rate': fixBadData(row.rate), 'mvalue': fixBadData(round(row.hold_amt / (10000 * 10000), 2)), 'pe': fixBadData(row.pe), 'ps': fixBadData(row.ps), 'pcf': fixBadData(row.pcf), 'pb': fixBadData(row.pb), 'report_type': row.report_date.strftime('%Y-%m-%d') }) result.append({"r_date": report_date, "data": tableData}) return jsonify(data=result)
def person_stockholder_rank(): data = hs.getStockHolderRank() sdata = [] for index, row in data.iterrows(): sdata.append({ 'name': row['name'], 'code': row.code, 'ncode': fn.code_to_ncode(row.code), 'sum': row['sum'], 'size': int(row['count']), 'avg': round(row['avg'],3), 'launch_date': row.launch_date }) return render_template('stock/stockholder_rank.html', title='自然人持股排行', stocks=sdata)
def query(): query = request.args.get('query') df = ds.get_global_basic_data() df = df[(df['name'].str.contains(query)) | (df.index.str.contains(query))] result = [] for index, row in df.iterrows(): result.append({ 'id': index, 'name': row['name'], 'ncode': fn.code_to_ncode(index) }) return jsonify(result=result)
def person_stockholder_rank(): data = hs.getStockHolderRank() sdata = [] for index, row in data.iterrows(): sdata.append({ 'name': row['name'], 'code': row.code, 'ncode': fn.code_to_ncode(row.code), 'sum': row['sum'], 'size': int(row['count']), 'avg': round(row['avg'], 3), 'launch_date': row.launch_date }) return render_template('stock/stockholder_rank.html', title='自然人持股排行', stocks=sdata)
def result_list_to_array(data): sdata = [] def fixBadData(x): return '-' if math.isnan(x) else x for index, row in data.iterrows(): sdata.append({ 'name': row['name'], 'code': row.code, 'industry': row.industry, 'tag': row.tag if hasattr(row, 'tag') else '', 'ncode': fn.code_to_ncode(row.code), 'pcode': row['code'] + ('01' if row['code'][:2] == '60' else '02'), 'price': fixBadData(row.close), 'mvalue': fixBadData(round(row.t_cap / (10000 * 10000), 2)), 'pe': fixBadData(round(row.t_cap / (row.jlr_ttm * 10000), 2)), 'ps': fixBadData(round(row.t_cap / (row.zyysr_ttm * 10000), 2)), 'pcf': fixBadData(round(row.t_cap / (row.jyjxjl_ttm * 10000), 2)), 'pb': fixBadData(round(row.t_cap / (row.gdqy * 10000), 2)), 'roe': fixBadData(round(row.jlr_ttm * 100.0 / row.gdqy, 2)), 'dar': fixBadData(round(row.zfz * 100.0 / (row.zzc), 2)), 'jlr_rate': fixBadData(round(row['jlr_rate'] * 100.0, 2)), 'sh_rate': fixBadData(row['count']), 'cash_rate': fixBadData(round(row.jyjxjl_ttm * 1.0 / row.jlr_ttm, 2)), # 现金净利润比 'report_type': '-' if pd.isnull(row.report_type) else row.report_type }) return sdata
def queryComment(uid,code,page=1): pageSize = 10 if code.strip() == '': totalPage = db.session.query(Comment).filter_by(user_id=uid).count() comments = db.session.query(Comment). \ filter_by(user_id=uid).order_by(Comment.created_time.desc()).offset( (page - 1) * pageSize).limit(pageSize) else: code = fn.code_to_ncode(code) if len(code) <= 6 else code totalPage = db.session.query(Comment).filter_by(stock=code, user_id=uid).count() comments = db.session.query(Comment). \ filter_by(stock=code, user_id=uid).order_by(Comment.created_time.desc()).offset( (page - 1) * pageSize).limit(pageSize) # group_by(Comment.parent_id,Comment.created_time,Comment.id).all() return totalPage,comments
def queryComment(uid, code, page=1): pageSize = 10 if code.strip() == '': totalPage = db.session.query(Comment).filter_by(user_id=uid).count() comments = db.session.query(Comment). \ filter_by(user_id=uid).order_by(Comment.created_time.desc()).offset( (page - 1) * pageSize).limit(pageSize) else: code = fn.code_to_ncode(code) if len(code) <= 6 else code totalPage = db.session.query(Comment).filter_by(stock=code, user_id=uid).count() comments = db.session.query(Comment). \ filter_by(stock=code, user_id=uid).order_by(Comment.created_time.desc()).offset( (page - 1) * pageSize).limit(pageSize) # group_by(Comment.parent_id,Comment.created_time,Comment.id).all() return totalPage, comments
def stockList(pageNum=None): pageSize = 200 page = 0 if pageNum is None else int(pageNum) df = ds.get_global_basic_data() totalPages = int(df.index.size / pageSize); df = df[(page*pageSize+1):(page+1)*pageSize] data = [] for index, row in df.iterrows(): data.append({ 'code': index, 'name': row['name'], 'ncode': fn.code_to_ncode(index) }) cuPage = 1 if page==0 else page return render_template('stock_list.html',title="股票清单",stocks=data,currentPage=cuPage,totalPages=totalPages)
def findStockJson(): skey = request.args.get('skey') result = [] st_result = dts.findStocksByHolder(skey) def fixBadData(x): import math return '-' if math.isnan(x) else round(x,2) for r in st_result: report_date = r['report_date'].strftime('%Y-%m-%d') df = r['data'] tableData = [] for index, row in df.iterrows(): tableData.append( {'name': row['name'], 'code': row.code, 'holder_name': row.holder_name, 'holder_code': row.holder_code, 'hold_length': row.hold_length, 'stock_industry': row.industry, 'ncode': fn.code_to_ncode(row.code), 'pcode': row['code'] + ('01' if row['code'][:2] == '60'else '02'), 'price': fixBadData(row.close), 'rate': fixBadData(row.rate), 'mvalue': fixBadData(round(row.hold_amt / (10000 * 10000), 2)), 'pe': fixBadData(row.pe), 'ps': fixBadData(row.ps), 'pcf': fixBadData(row.pcf), 'pb': fixBadData(row.pb), 'report_type': row.report_date.strftime('%Y-%m-%d') } ) result.append({"r_date": report_date, "data": tableData}) return jsonify(data=result)