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注入。