基于金融大数据的特征提取与趋势预测系统(3)——使用tushare获取基础股票数据并存入数据库

1.下载pandas、tushare和pymysql

pip install pandas

pip install tushare

pip install pymysql

2..获取数据

index_basic获取股票基本信息

daily获取股票日数据

将数据存入mysql数据库,会新建表,需保证数据库中没有这个表

3.数据读取

def get_basic(ts_code=False, name=False, market=False, publisher=False, 
category=False, base_date=False, base_point=False, list_date=False):
    sql = 'select * from `index_basic` where 1=1'
    val = []
    if ts_code:
        sql += ' and ts_code = %s'
        val.append(ts_code)
    if name:
        sql += ' and name = %s'
        val.append(name)
    if market:
        sql += ' and market = %s'
        val.append(market)
    if publisher:
        sql += ' and publisher = %s'
        val.append(publisher)
    if category:
        sql += ' and category = %s'
        val.append(category)
    if base_date:
        sql += ' and base_date = %s'
        val.append(base_date)
    if base_point:
        sql += ' and base_point = %s'
        val.append(base_point)
    if list_date:
        sql += ' and list_date = %s'
        val.append(list_date)
    # noinspection PyBroadException
    try:
        db = pymysql.connect(host="localhost", user="root", passwd="123456", 
db="fdas", use_unicode='utf-8')
        cursor = db.cursor()
        cursor.execute(sql, val)
        result = cursor.fetchall()
        db.close()
    except Exception as e:
        print(e)
    return result
def get_daily(ts_code=False, trade_date=False):
    # ts_code默认值为全部,trade_date默认值为今天
    val = []
    sql = "select * from `daily` where trade_date "
    if trade_date:
        if len(trade_date) == 2:
            sql += 'between %s and %s'
            val.append(trade_date[0])
            val.append(trade_date[1])
        else:
            sql += '= %s'
            val.append(trade_date)
    else:
        trade_date = time.strftime("%Y%m%d", time.localtime())
        val.append(trade_date)
    if ts_code:
        sql += ' and ts_code = %s'
        val.append(ts_code)
    # noinspection PyBroadException
    try:
        db = pymysql.connect(host="localhost", user="root", passwd="123456", 
db="fdas", use_unicode='utf-8')
        cursor = db.cursor()
        cursor.execute(sql, val)
        result = cursor.fetchall()
        db.close()
    except Exception as e:
        print(e)
    return result

我这里通过对sql语句的分段处理,实现查询条件的选择;

使用了sql语句的参数化防止sql注入。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值