读取股票数据存储到本地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('写入成功一只股票数据!')
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('写入成功一只股票数据!')
相关文章推荐
- 读取股票数据存储到本地MySQL数据库(一)
- 读取股票数据存储到本地MySQL数据库(二)
- SharedPreferences存储和读取本地数据
- iOS学习笔记3—NSKeyedUnarchiver进行本地数据的读取|存储
- Android本地数据的存储和读取(文件格式)
- 将数据从redis数据库中存储到本地的mysql数据库中
- OC数据储存本地(二)-----iOS----属性列表plist 写如何存储和读取
- 客户端读取本地文件的数据,发送到服务器,服务器接收并存储到文件中
- JS本地存储数据的几种方式
- 使用SQLite3存储和读取数据
- cheerio爬取网页数据,存储到MySQL数据库
- Android本地数据存储之.txt文件存储读写
- 数据库 SQLite3存储和读取数据
- Windows系统上MySQL数据库更改数据存储路径
- Qt从网络读取数据写入本地二进制文件
- 使用python读取mysql数据库并进行数据的操作
- Spark1.6.2 java实现读取json数据文件插入MySql数据库
- Android本地数据存储之SQLite
- 抓取网页的本地数据存储
- 读取外部存储的文件数据Environment.getExternalStorageDirectory()