300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 读取股票数据存储到本地MySQL数据库(三)

读取股票数据存储到本地MySQL数据库(三)

时间:2020-06-11 15:22:45

相关推荐

读取股票数据存储到本地MySQL数据库(三)

此篇是将上篇获取到的股票数据存储到本地mysql数据库。

mysql是关系型数据库,为Oracle旗下产品,开源免费。首先下载mysql的安装包,安装完成后设置数据库并启动服务,然后可以通过Navicat可视化客户端查看数据库。

通过pymysql模块处理sql语言的执行,基本操作就是先创建一个数据库的连接conn,然后创建cursor对象,cursor对象通过调用execute函数执行sql命令,可以使用cursor.rowcount返回操作后影响的行数,最后mit函数提交修改。

下边是一个创建表格的操作。

#encoding = utf-8import pymysqlif __name__ == '__main__':conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='mashijia',db='stock',charset='utf8mb4')cursor = conn.cursor()sql_create_table = "CREATE TABLE stockprice (id int not null auto_increment PRIMARY KEY, date DATE,\open float, high float, close float, low float, \volume float, chg float, chg_percent float, ma5 float,ma10 float, ma20 float, \vma5 float, vma10 float, vma20 float, turnover float)"cursor.execute(sql_create_table)#sql_insert = "INSERT INTO stockprice (date, open) VALUES ('0513', 15.44)"mit()print('创建表格成功!')conn.close()print('关闭连接')

上篇已经将从凤凰api获取的股票历史数据存储到dataframe中了,接下来就是讲df数据插入到mysql数据库中。

# encoding = utf-8import pymysqlimport pandas as pdclass InsertIntoMysql(object):def insert_into_mysql(self, conn, df):cursor = conn.cursor()sql_insert = "INSERT INTO stockprice (stock_code, date, open, high, close, low, volume, chg, chg_percent, ma5, ma10,\ma20, vma5, vma10, vma20, turnover) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"for indexs in df.index:cursor.execute(sql_insert, (str(df.loc[indexs, 'stock_code']), str(df.loc[indexs, 'date']), float(df.loc[indexs, 'open']),float(df.loc[indexs, 'high']), \float(df.loc[indexs, 'close']), float(df.loc[indexs, 'low']), float(df.loc[indexs, 'volume']), \float(df.loc[indexs, 'chg']), float(df.loc[indexs, 'chg_percent']), float(df.loc[indexs, 'ma5']), \float(df.loc[indexs, 'ma10']), float(df.loc[indexs, 'ma20']), float(df.loc[indexs, 'vma5']), \float(df.loc[indexs, 'vma10']), float(df.loc[indexs, 'vma20']), float(df.loc[indexs, 'turnover'])))mit()print('写入成功一只股票数据!')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。