您的位置:首页 > 数据库 > MySQL

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

2018-01-26 21:20 253 查看
此篇是将上篇获取到的股票数据存储到本地mysql数据库。

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

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

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

#encoding = utf-8
import pymysql
if __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 ('20160513', 15.44)"
    conn.commit()
    print('创建表格成功!')
    conn.close()
    print('关闭连接')
上篇已经将从凤凰api获取的股票历史数据存储到dataframe中了,接下来就是讲df数据插入到mysql数据库中。
# encoding = utf-8
import pymysql
import pandas as pd

class 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'])))
conn.commit()
print('写入成功一只股票数据!')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: