JQData数据提取及MySQL简单操作——基于Python

JQData平台真的挺不错,平台数据可以免费使用一年,满足绝大多数人需求,具体账号获取请自行百度哟~

因需要高频数据而Wind也只给近三年,再要还得购,,机缘遇到这一平台,获得了账号试用很不错,分享一下,有更好数据源希望不吝赐教呢(▼㉨▼メ)

  1 # -*- coding: utf-8 -*-
  2 """
  3 Created on Sat May 26 19:50:50 2018
  4 
  5 @author: Luove
  6 """
  7 
  8 from jqdatasdk import *#平台给的包,务必加载,地址:https://github.com/JoinQuant/jqdatasdk/archive/master.zip
  9 import numpy as np
 10 import pandas as pd
 11 import csv
 12 auth('***','***')#依次输入账号、密码,链接到平台数据库
 13 
 14 # 市场整体数据获取
 15 #get_all_securities(types='stock',date)
 16 #types,为列表,可以为stock/fund/index/futures/etf/lof/fja(分级A)/fjb,为空时返回所有股票不含基金指数期货;date日期表获取这一日期还在上市的股票默认None表获取所有日期股票
 17 #上海证券交易所     .XSHG     ‘600519.XSHG’     贵州茅台
 18 #深圳证券交易所     .XSHE     ‘000001.XSHE’     平安银行
 19 #中金所     .CCFX     ‘IC9999.CCFX’     中证500主力合约
 20 #大商所     .XDCE     ‘A9999.XDCE’     豆一主力合约
 21 #上期所     .XSGE     ‘AU9999.XSGE’     黄金主力合约
 22 #郑商所     .XZCE     ‘CY8888.XZCE’     棉纱期货指数
 23 #上海国际能源期货交易所     .XINE     ‘SC9999.XINE’     原油主力合约
 24 index = get_all_securities(types='index')
 25 stock = get_all_securities()
 26 df = get_all_securities(['fund'])
 27 get_all_securities(date='2015-10-24')[:5]
 28 
 29 stock[:2]
 30 len(stock)
 31 type(stock)
 32 
 33 
 34 # 单个标的信息采集
 35 get_security_info('000001.XSHG').type
 36 assert get_security_info('502050.XSHG').parent == '502048.XSHG'
 37 
 38 # return component stocks,list
 39 hs300 = get_index_stocks('000300.XSHG')  # hs300 component stocks
 40 
 41 # 股票代码格式转化,转化为XSHG/XSHE
 42 #normalize_code(code)
 43 for code in ('000001', 'SZ000001', '000001SZ', '000001.sz', '000001.XSHE'):
 44         print(normalize_code(code))
 45 # 融资融券标的(股票列表)
 46 get_margincash_stocks()
 47 get_marginsec_stocks()
 48 
 49 
 50 
 51 # 交易行情获取
 52 # 获取交易日,都那天交易
 53 get_trade_days(start_date='2018-01-01',end_date='2018-05-05')
 54 
 55 #get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None)
 56 #获取一支或者多只股票的行情数据, 按天或者按分钟,这里在使用时注意 end_date 的设置, 不要引入未来的数据
 57 get_price()
 58 hsdata = get_price('000300.XSHG',start_date='2013-01-01',end_date='2016-10-31',frequency='5m',skip_paused=True)
 59 zxbdata = get_price('399005.XSHE',start_date='2013-01-01',end_date='2016-10-31',frequency='5m',skip_paused=True)
 60 cybdata = get_price('399006.XSHE',start_date='2013-01-01',end_date='2016-10-31',frequency='5m',skip_paused=True)
 61 
 62 #hsdata = pd.DataFrame(hsdata)
 63 #zxbdata = pd.DataFrame(zxbdata)
 64 #cybdata = pd.DataFrame(cybdata)
 65 # pandas 文件输出输入操作
 66 # save as csv file/pandas.DataFrame.to_excel/csv
 67 test.to_csv('D:/Analyze/Python Matlab/Python/DataLib Py/test.csv')
 68 hsdata.to_csv('D:/Analyze/Python Matlab/Pyxlrdthon/DataLib Py/hs.csv')
 69 zxbdata.to_csv('D:/Analyze/Python Matlab/Python/DataLib Py/zxb.csv')
 70 cybdata.to_csv('D:/Analyze/Python Matlab/Python/DataLib Py/cyb.csv')
 71 
 72 #defaults to ',' for read_csv(), \t for read_table()
 73 
 74 c = pd.read_csv('D:/Analyze/Python Matlab/Python/DataLib Py/test.csv')
 75 
 76 
 77 # save as excel file
 78 writer = pd.ExcelWriter('output.xlsx')
 79 test.to_excel(writer,'Sheet1')
 80 writer.save()       
 81 
 82 b = pd.read_excel('output.xlsx', sheet_name='Sheet1')
 83 
 84 # 操作DataFrame行列名
 85 c.columns.values.tolist()
 86 c1=c.rename(columns={'Unnamed: 0':'date'})
 87 c.rename(columns={'Unnamed: 0':'date'},inplace=True)  # inpalce表示改变自身而非另外生成一个拷贝
 88 c.columns.values.tolist()
 89 c1.columns.values.tolist()
 90 
 91 
 92 # 链接MySQL
 93 import pymysql
 94 # 查询,需要事先熟悉数据库
 95 ##host='127.0.0.1',user='***',password='***',db='test';星号号处填上数据库的对应口令即可,test是你要预先MySql中建立的库
 96 db = pymysql.connect(host='127.0.0.1',user='***',password='***',db='test')
 97 cur=db.cursor()
 98 
 99 sq1='select * from test_table'
100 try:
101     cur.execute(sq1)
102     results=cur.fetchall()
103     print('date','height','weight','bmi')
104     for row in results:
105         date=row[0]
106         height=row[1]
107         weight=row[2]
108         bmi=row[3]
109         print(date,height,weight,bmi)
110 except Exception as e:
111     raise e
112 finally:
113     db.close()
114 
115 # 创建表
116 # creat a table,named hs5
117 # 存在则先删除
118 #cur.execute('DROP TABLE IF EXISTS hs5') #和下面效果一致
119 #cur.execute("drop table if exists hs5")  # 无此句,若已存在,会报错
120 sq2='''create table hs5(date datetime,open float(16),close float(16),high float(16),low float(16),volume float(16),money float(16)) engine=innodb charset utf8'''
121 cur.execute(sq2)
122 
123 # 插入表
124 
125 from sqlalchemy import create_engine
126 #conn = create_engine('mysql+mysqldb://root:password@localhost:3306/databasename?charset=utf8')  
127 engine = create_engine('mysql+pymysql://root:1024@localhost:3306/test')
128 hsdata.to_sql('hs5',con=engine,if_exists='replace')
129 zxbdata.to_sql('zxb',con=engine,if_exists='replace')
130 cybdata.to_sql('cyb',con=engine,if_exists='replace')
131 
132 db.close()  #用完close好习惯

 

REF:

网站给的函数喜欢都试试(感觉在打广告,老铁账号权限升一升啊喂),链接:传送门

 

转载于:https://www.cnblogs.com/amoor/p/9470481.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库事物相关笔记

一、数据库的事物的基本特性 事物是区分文件存储系统与Nosql数据库重要特性之一,其存在的意义是为了保证即使在并发情况下也能正确的执行crud操作。怎样才算是正确的呢?这时提出了事物需要保证的四个特性即ACID: A: 原子性(atomicity) 事物…

[css] clear属性只对块级元素有效么?为何无法应用于行内元素?

[css] clear属性只对块级元素有效么?为何无法应用于行内元素? block元素浮动之后已经脱离了文档流了,排列的顺序都不一样了,所以清除了之后有效果。 inline-block还是在文档流里面,加浮动不加浮动都没有什么作用的&am…

GO语言-基础语法:条件判断

1. IF判断(aa.txt内容:asdfgh。bb.txt内容:12345) package mainimport ("io/ioutil""fmt" )func main() {const filename1, filename2 "aa.txt", "bb.txt"contents, err : ioutil.ReadFile(filename1) if err …

JVM模型学习笔记

JVM由三个主要的子系统构成 1. 运行时数据区(内存结构): 运行时数据区也是JVM的核心部分 内存数据区又分:堆、java栈、本地方法栈、程序计数器、方法区 1.1 本地方法栈(线程私有): 登记native方法,在Execution Eng…

[css] css的负边距有哪些应用场景?

[css] css的负边距有哪些应用场景? 垂直水平居中 通过伪元素扩大元素覆盖范围个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

tomcat 设置虚拟路径的4种方法

通常使用方法1或者方法2 方法1 (添加配置文件):推荐使用,不需要重启服务器 在Tomcat根目录下的/conf/Catalina/localhost/ 路径下新建一个filename.xml,并在该xml中编写语句 即可创建虚拟站点,虚拟站点名为…

sharding-sphere按月动态分表

公司有个记录表,每天有几百万的数据,所以我决定按月把他分下表。 用spring整合的。 首先,sharding-sphere不支持自动创建表,所以我提前创建了两年的表,命名规则 logicTableName _2019_06 以下是官方文档上面的分片…

[css] 你了解CSS Houdini吗?说说它的运用场景有哪些?

[css] 你了解CSS Houdini吗?说说它的运用场景有哪些? Houdini是一组底层API,它们公开了CSS引擎的各个部分,从而使开发人员能够通过加入浏览器渲染引擎的样式和布局过程来扩展CSS。 Houdini是一组API,它们使开发人员可…

python 入门学习

把sublime编辑的.py文件保存在本地,在当前目录下输入 1 python hello.py 即可运行该程序,一定要在当前目录下运行。如果当前目录下没有该文件则不能成功运行。 其中cmd黑窗口下有这么几个快捷键, c: 进入另一个盘 dir 显示当前目录 tab 进…

[css] 列举一些你认为最“昂贵”的css属性并解释为什么

[css] 表列举一些你认为最“昂贵”的css属性并解释为什么 filter 吧,学过高斯模糊算法的表示头疼个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

大厂Java岗面试心得记录

最近裸辞,面了几家大厂,offer率高达100% 哈哈,然后发现选公司也是一件难事。 废话不多说,分享一下,我遇到的面试题,大概有以下这些: JVM: 1.JVM有哪些区域? 2.堆和栈分别说说内部东…

原生Js 两种方法实现页面关键字高亮显示

方法一 依靠正则表达式修改 1.获取obj的html 2.统一替换html标签 3.替换要修改的关键字 4.再把html标签修改回去 不足就是如果查找的关键字跟替换的标签一样就有冲突了 <!DOCTYPE HTML> <html lang"en"> <meta http-equiv"Content-Type" co…

[css] 为什么说css的选择器是从右向左匹配?

[css] 为什么说css的选择器是从右向左匹配&#xff1f; 从右往左匹配会首先排除很多错误的匹配&#xff0c;打个简单的比方&#xff0c;孩子只有一个父亲&#xff0c;但是父亲可以有很多个孩子&#xff0c;从孩子找父亲简单&#xff0c;从父亲找某个指定的孩子可能就会找到错误…

SpringBoot启动报错java.nio.charset.MalformedInputException: Input length = 2解决方案

最近新搭的一个项目&#xff0c;启动时&#xff0c;会报MalformedInputException这个异常&#xff0c; 百度了很久&#xff0c;网上说的千篇一律&#xff0c; 有的说&#xff0c;把yml复制到txt再复制回来 有的说&#xff0c;设置eclipse的utf-8环境 这些根本没有根治这个问…

IDEA主题设置与eclipse代码风格一致

习惯了用eclipse的你&#xff0c;是不是转到用idea特别不习惯&#xff0c;没有关系&#xff0c; 我们可以把idea的代码风格改成eclipse的&#xff0c;快捷键也换成eclipse的。 下载这个jar包&#xff0c;导入settings文件即可 下载地址 : https://download.csdn.net/download…

bash shell 中时间操作常用方法总结

在日常的工作中&#xff0c;bash shell 的时间操作非常频繁。比如shell脚本定时发送数据统计的时候&#xff0c;会查看当前是否为预定的发送时间。或者使用文件保存一些数据时&#xff0c;一般会生成时间字符串当做文件名的一部分。总结一下&#xff0c;以后再用到就不用上网到…

[css] 使用css实现一个loading的效果

[css] 使用css实现一个loading的效果 <div class"donut"></div> Keyframes donut-spin {0% {transform: rotate(0deg);}100% {transform: rotate(360deg);} }.donut {display: inline-block;border: 4px solid rgba(0, 0, 0, 0.1);border-left-color: #…

浅谈分布式锁

概述 为了防止分布式系统中的多个进程之间相互干扰&#xff0c;我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。 为什么要使用分布式锁 成员变量 A 存在 JVM1、JVM2、JVM3 三个 JVM 内存中 成员变量 A 同时都会在 JVM …

机器学习模型评估指标总结

常用机器学习算法包括分类、回归、聚类等几大类型&#xff0c;以下针对不同模型总结其评估指标 一、分类模型 常见的分类模型包括&#xff1a;逻辑回归、决策树、朴素贝叶斯、SVM、神经网络等&#xff0c;模型评估指标包括以下几种&#xff1a; &#xff08;1&#xff09;二分类…

[css] 说说sroll-snap-type属性的运用场景有哪些?相关联的属性还有哪些?

[css] 说说sroll-snap-type属性的运用场景有哪些&#xff1f;相关联的属性还有哪些&#xff1f; 使用 sroll-snap-type 优化滚动 根据 CSS Scroll Snap Module Level 1 规范&#xff0c;CSS 新增了一批能够控制滚动的属性&#xff0c;让滚动能够在仅仅通过 CSS 的控制下&#…