日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql+tushare搭建本地数据库

發布時間:2023/12/19 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql+tushare搭建本地数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?創建股票數據庫

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2018-09-04 14:34:59 # @Author : Michael Li # @Version : $V2.0$import pandas as pd import numpy as np import datetime import random import pymssql from sqlalchemy import create_engine import tushare as ts import logging from time import sleep from queue import LifoQueue import threading #以上是需要使用的Python包,沒有安裝的請pip install XXXXclass stock(object):"""get stock information"""def __init__(self):self.host = '127.0.0.1'self.user = 'sa'self.password = 'test'self.port = 3306 #端口self.database = 'stock'self.Daily_tableName = 'daily'self.Daily_basic_tableName = 'daily_basic'#開始和結束時間僅用于獲取區間數據,代碼中有用于獲取當前日期的函數。self.startTime = '20100101' #開始時間self.endTime = datetime.datetime.now().strftime('%Y%m%d') #結束時間#以下為兩個隊列,用于支撐多線程。self.ts_code_queue = LifoQueue() #ts_code隊列,用于獲取指定代碼的股票信息。self.trade_cal_queue = LifoQueue() #trade_cal交易日期隊列,用于獲取指定時間的股票信息。ts.set_token('')self.pro = ts.pro_api()def log(self):''' 日志功能函數'''logger = logging.getLogger()logger.setLevel(logging.INFO)handler = logging.FileHandler(r'D:/abc.log', encoding='utf-8')# handlerStream = logging.StreamHandler()formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")handler.setFormatter(formatter)logger.addHandler(handler)# logger.addHandler(handlerStream)logging.info('開始獲取%s的數據' % (self.getDatetime()))def insertMysql(self, tableName, data):conn = pymssql.connect(host = '.',user ='sa',password = 'test',database = 'stock',charset ='utf8')'''創建數據庫連接,需要先在數據庫中建立相應的表和表結構'''engine = create_engine('mssql+pymssql://%s:%s@%s/%s' % (self.user, self.password, self.host, self.database))'''將獲取到的數據插入到數據庫中,if_exists=append為向后添加,index=False為不保存DF自動生成的index'''data.to_sql(tableName,con = engine,if_exists='append', index=False)def getDatetime(self):'''獲取當天日期的函數 '''taday = datetime.datetime.now().strftime('%Y%m%d')return tadaydef getTrade_cal(self):# 獲取各大交易所交易日歷數據,默認提取的是上交所(注意start_date和end_date的值,獲取周期數據可使用self.startTime和self.endTime)#官方文檔:https://tushare.pro/document/2?doc_id=26trade_cal = self.pro.query('trade_cal', exchange='SZSE', start_date=self.startTime,end_date=self.endTime, is_open=1)#將日期列轉換為list,便于使用隊列trade_cals = trade_cal['cal_date'].tolist()#循環將每個交易日塞進隊列中for trade_cal in trade_cals:self.trade_cal_queue.put(trade_cal, True, 2)logging.info('Trade_cal 隊列中共計:%s 條信息' % (self.trade_cal_queue.qsize()))def getList(self):'''獲取獲取基礎信息數據,包括股票代碼、名稱、上市日期、退市日期等'''stock_basic = self.pro.query('stock_basic', exchange_id='', is_hs='N',fields='ts_code,symbol,name,fullname,list_date,list_status')stock_basic.set_index('ts_code', inplace=True)for ts_code in stock_basic.index.tolist()[0:20]:self.ts_code_queue.put(ts_code, True, 2)logging.info('共計%s條數據' % (self.ts_code_queue.qsize()))#備注:此函數不是經常使用。def getDaily_code(self):'''獲取指定股票代碼的數據'''print('子線程(%s)啟動' % (threading.current_thread().name))while not self.ts_code_queue.empty():#訪問隊列,隊列為空時退出。code = self.ts_code_queue.get(True, 3)#使用tushare獲取(code是從隊列中取出的ts_code)#Tushare 官方文檔:https://tushare.pro/document/2?doc_id=27daily = self.pro.query('daily', ts_code=code,start_date=self.startTime, end_date=self.endTime)daily['trade_date'] = pd.to_datetime(daily['trade_date'], format='%Y-%m-%d')#將獲取到的數據保存至數據庫self.insertMysql(self.Daily_tableName, daily)# print(code)sleep(random.randint(1, 2))logging.info('------>%s的getDaily_code數據全部搞定<------' %(self.getDatetime()))def getDaily_date(self):'''獲指定日期或日期范圍的股票數據'''logging.info('線程(%s)啟動' % (threading.current_thread().name))while not self.trade_cal_queue.empty():#隊列功能同上個函數date = self.trade_cal_queue.get(True, 2)#使用tushare獲取(date是從隊列中取出的日期)#Tushare 官方文檔:https://tushare.pro/document/2?doc_id=27daily = self.pro.query('daily', start_date=date)daily['trade_date'] = pd.to_datetime(daily['trade_date'], format='%Y-%m-%d')self.insertMysql(self.Daily_tableName, daily)logging.info('--> %s 的數據共計:%s 條 <--' %(date, len(daily)))sleep(random.randint(1, 2))logging.info('線程(%s)結束' % (threading.current_thread().name))def getDaily_basic(self):'''獲取Daily_basic數據'''#Tushare 官方文檔:https://tushare.pro/document/2?doc_id=32daily_basic = self.pro.query('daily_basic', ts_code='002427',trade_date=self.getDatetime())#簡單的數據清洗,將空值填充為0daily_basic = daily_basic.fillna(0)self.insertMysql(self.Daily_basic_tableName, daily_basic)logging.info('------>%s的Daily_basic的數據搞定<------' %(self.getDatetime()))#print(daily_basic)def main(self):#這里算是總調度吧self.log() #日志self.getDaily_basic() # 獲取Daily_basicself.getTrade_cal() #獲取日期(可是周期,也可是單天日期)#啟動多線程(4個)for x in range(4):x += 1t1 = threading.Thread(target=self.getDaily_date, name='getDaily_date %d 號進程' % (x))t1.start()t1.join()if __name__ == '__main__':#大功告成,實例化后啟動main函數。stock = stock()stock.main()

總結

以上是生活随笔為你收集整理的mysql+tushare搭建本地数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 漂亮人妻被中出中文字幕 | 日本伊人色 | 一级黄色片毛片 | 成人短视频在线 | 人妻少妇一区二区 | 夜夜爽天天操 | 男人天堂手机在线观看 | 亚洲自拍偷拍在线 | 欧美一级艳片视频免费观看 | 中文字幕欧美人妻精品一区蜜臀 | 樱桃成人精品视频在线播放 | 日韩成人高清视频 | 不卡中文字幕在线 | 九九热视频免费观看 | 中文字幕日韩电影 | 亚洲精品久久久久久久久久 | 日本暧暧视频 | 欧美播放器 | 97视频一区二区 | 色无极在线 | 国产成人小视频在线观看 | 18禁男女爽爽爽午夜网站免费 | av色成人| 毛片1000部免费看 | 日本三级一区二区三区 | 国产夫绿帽单男3p精品视频 | 国产精品成人在线 | 综合久久久久久久 | 久久国产人妻一区二区免色戒电影 | 风间ゆみ大战黑人 | 男操女视频在线观看 | 蜜桃中文字幕 | 精品国产乱码久久久久久免费 | 在线看黄网址 | 日本免费在线视频观看 | 国产精品无码影院 | 国产a级精品 | 97精品熟女少妇一区二区三区 | 无码国产精品一区二区高潮 | 精品免费囯产一区二区三区 | 日韩九九九 | 国产字幕av | 激情导航 | 成人淫片 | 亚洲精品一区二区三区区别 | 亚洲日本韩国在线 | 成人7777| 成人av影视在线观看 | av一区二区三区免费观看 | 成人xxxx| 在线免费精品视频 | 成人黄色在线观看视频 | 无码人妻一区二区三区在线 | 美女高潮流白浆视频 | 色91精品久久久久久久久 | 国产高潮白浆 | 亚洲欧美在线免费观看 | 国产日韩av在线播放 | 丁香婷婷在线 | 黄视频国产 | 男女激情视频网站 | 免费草逼视频 | h视频在线观看网站 | 国外成人免费视频 | 亚洲午夜不卡 | 三级黄色av | 午夜宅男网 | 少妇精品久久久久久久久久 | 天天舔天天插 | 精品久久无码中文字幕 | 日韩一级片在线 | 黄色av网站免费观看 | 18岁成年人网站 | 4438亚洲最大| 欧美亚洲综合视频 | 大香蕉视频一区二区 | 精品人伦一区二区三电影 | 欧美少妇网 | 久久国产精品99久久人人澡 | 中文字幕一区二区三区电影 | 日韩中文字幕在线看 | 国产亚洲精品成人a | 91大奶| 91在线日本| 日韩人妻无码精品久久久不卡 | 免费国产91| 美女扒开粉嫩尿口 | 黄色片a级| 国产剧情久久久 | 国产字幕侵犯亲女 | 偷拍青青草 | 黄页视频在线观看 | 日本丰满少妇一区二区三区 | www.欧美成人 | 三级免费观看 | 性一交一乱一伧国产女士spa | 亚洲国产专区 | 精品99久久久久成人网站免费 | 婷婷六月天 |