下载上市公司信息及公告原文到数据库

Tushare 下载股票数据时,往往数据下载量都很大,刚学的时候,往往都会将数据以.xlsx,或.csv的格式存储。
如:
data.to_excel(’’)
data.to_csv(’’)
这是最直接简单存储数据的方法,但是同样也有很多弊端
如:
1 数据容易被覆盖
2 数据读取复杂
3 数据格式
当然,以上问题都可以解决,但我还是想介绍一种很专业存储数据的方法:数据库。
数据库有很多种,anaconda3中支持的各种主流数据库都有,如MySQL、Postgresql、Oracle、MS SQLServer、SQLite。
试用一下sqlite.
#下载上市公司信息及公告原文到数据库里
import pandas as pd
import sqlite3
import numpy as np
import time
import tushare as ts
ts.set_token(’***************************************’)
pro = ts.pro_api()
conn=sqlite3.connect(“Stocklist.db”)
df=pd.read_csv(‘E:/python_data/company.csv’)
df.to_sql(‘Stocklist’,conn,if_exists=‘append’)
query1=“select name from sqlite_master where type=‘table’ order by name”#获取所有的表名
alreadylist=pd.read_sql(query1,conn)
df1 = np.array(df)
df2 = df1.tolist()#把array数组转换成list
stockcode=[x[1] for x in df2]
#print(stockcode)
for i in stockcode:
today = time.strftime(’%Y%m%d’,time.localtime(time.time()))
before = ‘20190101’
stockpro=pro.anns(ts_code=i, start_date=before, end_date=today, year=‘2019’)
stockpro.to_sql(‘Stockpro’,conn,if_exists=‘append’)
query2=“select name from sqlite_master where type=‘table’ order by name”#获取所有的表名
alreadylist=pd.read_sql(query2,conn)
query3= “SELECT * FROM table”
df = pd.read_sql(query3, conn)
print(‘OK’)

你可能感兴趣的:(Tushare)