将在本地获取jqdata的数据保存为sql数据库,并读取数据的方法

转自(https://www.joinquant.com/view/community/detail/464f20c091e3e38242a531d321808306)

如何将本地获取jqdata的数据保存为sql数据库文件呢?
简单粗暴直接上代码,使用的是python自带的sqlite3数据库,比较轻便!

import jqdatasdk as jq  
from sqlalchemy import create_engine #sqlalchemy是Python自带的与数据库联结的包,导入创建数据库联结的函数
import sqlite3   #导入python自带数据库sqlite3
import pandas as pd  

jq.auth('admin','passpords')

ADDR = 'sqlite:///jqstockdata.db'     # 使用sqlite,当前目录的jqstockdata.db作为数据库文件

engine = create_engine(ADDR)  #创建jqstockdata.db文件

Stocks = list(jq.get_all_securities(['stock']).index)  #获取所有股票代码

connect=sqlite3.connect('jqStockdata.db')    #与数据库建立链接


def save(stocks):     #构建函数

    print("save code:",stocks)  #打印数据保存成功的股票代码
    try:
        df = jq.get_price(stocks, start_date='start_date', end_date='end_data',frequency='1d',skip_paused=True,fq='pre') #获取股票数据


        name =stocks   #以股票代码为数据库表名
        df.to_sql(name, conn2, if_exists='append')  #将数据写入数据库
    except:
        print(code, " save failed")  #打印保存失败的股票代码

for i in range(0, len(Stocks)):
    save(Stocks[i])

数据保存好之后我们如何获取数据呢?也很简单,请看下面代码

import sqlite3
import pandas as pd
conn=sqlite3.connect('jqstockdata.db')
df=pd.read_sql('select  * from "{}"'.format('股票代码'),index_col = 'index',con= conn )   

df.index= pd.to_datetime(df.index,format='%Y-%m-%d')   #改变一下读取后的数据日期格式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值