Python学习教程:手把手教你搭建自己的量化分析数据库

插入PostgreSQL 数据库操作,函数里使用了try…except…pass是为了避免某些数据出错导致程序崩溃。

from sqlalchemy import create_engine
import psycopg2
engine = create_engine('postgresql+psycopg2://postgres:123456@localhost:5432/postgres')
def insert\_sql(data,db_name,if_exists='append'):
 #使用try...except..continue避免出现错误,运行崩溃
 try:
 data.to_sql(db_name,engine,index=False,if_exists=if_exists)
 #print(code+'写入数据库成功')
 except:
 pass
复制代码

由于行情数据量庞大,下载比较慢,先下载20190101至20190425期间日交易

数据,后续再不断更新。

#下载20190101-20190425数据并插入数据库stock\_data
#此步骤比较耗费时间,大致25-35分钟左右
for code in get_code():
 data=get_data(code)
 insert_sql(data,'stock\_data')
#读取整张表数据
df=pd.read_sql('stock\_data',engine)
print(len(df))
#输出结果:270998
#选取ts\_code=000001.SZ的股票数据
df=pd.read_sql("select \* from stock\_data where ts\_code='000001.SZ'",engine)
print(len(df))
复制代码

构建一个数据更新函数,可以下载和插入其他时间周期的数据。2018年1月1日至2019年4月25日,数据就已达到108万条。

#更新数据或下载其他期间数据
def update\_sql(start,end,db_name):
 from datetime import datetime,timedelta
 for code in get_code():
 data=get_data(code,start,end)
 insert_sql(data,db_name)
 print(f'{start}:{end}期间数据已成功更新')
#下载20180101-20181231期间数据
#只需运行一次,不再运行后可以注释掉
#下载数据比较慢,需要20-35分钟左右
start='20180101'
end=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值