从身份证号码里提取生日和周岁的方法
847
2022-05-29
在这个实体经济都开始数字驱动的时代,股市韭菜也得与时俱进,不能停留在拍脑袋决定买或卖的时点上。本文用于记录0-1给自己搭一个金融数据库的过程。
3. 数据库定时更新
3.1. 追加式更新
我们以上证指数收盘价为例,来演示一下数据库追加式的定时更新,并尝试用一种新方法来做演示。
3.1.1. 查看数据格式
首先来看一下数据表的格式。
show columns from SSEC;
3.1.2. 获取数据
我们从tushare获取新的数据(热点复现|用Dash做A股量化策略可视也曾提到过tushare)。
import tushare as ts pro = ts.pro_api('your token')
import datetime new_SSEC = pro.index_daily(ts_code='000001.SH', trade_date=datetime.datetime.strftime(datetime.datetime.now(), '%Y%m%d'))[['trade_date', 'close']] new_SSEC
3.1.3. 连接mysql并将数据插入数据库
这里我们使用sqlalchemy,通过pandas的DataFrame来实现插入。
from sqlalchemy import create_engine engine=create_engine('mysql+pymysql://root:password@host:port/database')
root、password、host、port、database处请替换成自己的数据库设置,可参见给自己搭一个金融数据库(一)或留言交流。
new_SSEC.to_sql('SSEC', engine, index=False, if_exists='append')
注意必须记得加上if_exists='append'。加了这个参数后,如果数据表已经存在,则在原记录上增加。默认的参数下,如果数据表已经存在,将会删除后重新建表。
再去查一下数据库,可以看到插入已经成功了。
3.2. 修改式更新
也有可能有些表不是插入新的记录,而是理发原记录。
比如我有一个表,表结构如下:
它是用来记录每一次买卖的,卖出可能不是跟买入一起记录的,而是后期再去更新的,那个需要用到update,与给自己搭一个金融数据库(二)介绍的insert非常相似。
3.2.1. 连接数据库
import pymysql import pymysql conn = pymysql.connect(host='host', user='root', password='password', port=3306, database='stock', charset='utf8') cur = conn.cursor()
3.2.2. 修改数据库
>>> for i in hold_detail.index: ... sql = "update hold_detail set sale_date=%s, sale_price=%f where id=%d" % (hold_detail['sale_date'][i], hold_detail['sale_price'][i], hold_detail['id'][i]) ... cur.execute(sql) ... conn.commit()
如此,自己的金融数据库搭建完毕。当然,如何用起来才是关键,有机会再做记录。
数据库 金融专区
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。