我们搜集金融数据,通常想要的是利用爬虫的方法。其实我们最近所学的class不仅可以进行类调用,在获取数据方面同样是可行的,很多小伙伴都比较关注理财方面的情况,对金融数据的需要也是比较多的。下面就class类在python中获取金融数据的方法为大家带来讲解。

使用tushare获取所有A股每日交易数据,保存到本地数据库,同时每日更新数据库;根据行情数据进行可视化和简单的策略分析与回测。由于篇幅有限,本文着重介绍股票数据管理(下载、数据更新)的面向对象编程应用实例。

#导入需要用到的模块

import numpy as np

import pandas as pd

from dateutil.parser import parse

from datetime import datetime,timedelta

#操作数据库的第三方包,使用前先安装pip install sqlalchemy

from sqlalchemy import create_engine

#tushare包设置

import tushare as ts

token='输入你在tushare上获得的token'

pro=ts.pro_api(token)

#使用python3自带的sqlite数据库

#本人创建的数据库地址为c:\zjy\db_stock\

file='sqlite:///c:\\zjy\\db_stock\\'

#数据库名称

db_name='stock_data.db'

engine = create_engine(file+db_name)

class Data(object):

def __init__(self,

start='20050101',

end='20191115',

table_name='daily_data'):

self.start=start

self.end=end

self.table_name=table_name

self.codes=self.get_code()

self.cals=self.get_cals()

#获取股票代码列表

def get_code(self):

codes = pro.stock_basic(list_status='L').ts_code.values

return codes

#获取股票交易日历

def get_cals(self):

#获取交易日历

cals=pro.trade_cal(exchange='')

cals=cals[cals.is_open==1].cal_date.values

return cals

#每日行情数据

def daily_data(self,code):

try:

df0=pro.daily(ts_code=code,start_date=self.start,

end_date=self.end)

df1=pro.adj_factor(ts_code=code,trade_date='')

#复权因子

df=pd.merge(df0,df1)  #合并数据

except Exception as e:

print(code)

print(e)

return df

#保存数据到数据库

def save_sql(self):

for code in self.codes:

data=self.daily_data(code)

data.to_sql(self.table_name,engine,

index=False,if_exists='append')

#获取最新交易日期

def get_trade_date(self):

#获取当天日期时间

pass

#更新数据库数据

def update_sql(self):

pass #代码省略

#查询数据库信息

def info_sql(self):

pass #代码省略

代码运行#假设你将上述代码封装成class Data

#保存在'C:\zjy\db_stock'目录下的down_data.py中

import sys

#添加到当前工作路径

sys.path.append(r'C:\zjy\db_stock')

#导入py文件中的Data类

from download_data import Data

#实例类

data=Data()

#data.save_sql() #只需运行一次即可

data.update_sql()

data.info_sql()

补充:类的专有方法

__init__ : 构造函数,在生成对象时调用

__del__ : 析构函数,释放对象时使用

__repr__ : 打印,转换

__setitem__ : 按照索引赋值

__getitem__: 按照索引获取值

__len__: 获得长度

__cmp__: 比较运算

__call__: 函数调用

__add__: 加运算

__sub__: 减运算

__mul__: 乘运算

__truediv__: 除运算

__mod__: 求余运算

__pow__: 乘方

本篇使用class类在python中获取金融数据的方法,到这里就全部分享给大家了。相信很多小伙伴已经用它开始采集金融数据了,结尾一些类的方法大家可以了解下,都是能经常用到的。

python金融数据怎么获取_class类怎样在python中获取金融数据?相关推荐

  1. 获取存储过程返回值及代码中获取返回值

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  2. 获取存储过程返回值及代码中获取返回值(转)

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  3. 提升: 建立一个如下的学生情况表,要求先依次输入学生数据元素,然后依次显示当前表中的学生数据元素。 学号 姓名 性别 年龄 2000001 张三 男 20 2000002

    提升: 建立一个如下的学生情况表,要求先依次输入学生数据元素,然后依次显示当前表中的学生数据元素. 学号 姓名 性别 年龄 2000001 张三 男 20 2000002 李四 男 21 200000 ...

  4. 用python怎样做学生管理系统用类的形式-Python配置管理的几种方式

    一. 为什么要使用配置 如果我们在较复杂的项目中不使用配置文件,我们可能会面临下面的情况: 你决定更改你的项目中数据库的 host, 因为你要将项目从测试环境转移到实际的上产环境中.如果你的项目中多个 ...

  5. python提取pdf表格数据_Python骚操作,提取pdf文件中的表格数据!

    在实际研究中,我们经常需要获取大量数据,而这些数据很大一部分以pdf表格的形式呈现,如公司年报.发行上市公告等.面对如此多的数据表格,采用手工复制黏贴的方式显然并不可取.那么如何才能高效提取出pdf文 ...

  6. FastJson序列化Json自定义返回字段,普通类从spring容器中获取bean

    前言: 数据库的字段比如:price:1 ,返回需要price:1元. 这时两种途径修改: ① 比如sql中修改或者是在实体类转json前遍历修改. ②返回json,序列化时候修改.用到的是fastj ...

  7. java中怎么找类的路径_Java中获取类加载路径和项目根路径的5种方法

    public class MyUrlDemo { public static void main(String[] args) { MyUrlDemo muDemo = new MyUrlDemo() ...

  8. java反射获取实现类_Java介绍通过反射获取类的信息

    免费学习推荐:java基础教程 目录1.获取Field 2.反编译Field 3.通过反射机制访问对象属性 4.可变长度参数 5.反射Method(了解) 6.反编译(了解) 7.反射机制调用方法 8 ...

  9. python遍历数组获取下标_如何在循环中获取索引(数组下标)

    如何获取列表的索引值呢? ints = [8, 23, 45, 12, 78] 如果像C或者PHP那样可以加入一个状态变量,这里使用Python最好的选择就是用内建函数enumeratefor i i ...

最新文章

  1. GNU make manual 翻译(二十六)
  2. axios nodejs 上传图片_Vue Axios跨域、文件上传
  3. 前序遍历(递归、非递归)、层序遍历(递归、非递归)
  4. CentOS6实现路由器功能
  5. laravel 任务队列_Laravel5.5之事件监听、任务调度、队列
  6. DWA泊车算法的实现
  7. python函数使用两个小括号
  8. 只保留日期_全历手表与年历腕表都能看日期,为何唯独万年历腕表价格不菲?...
  9. Windows Communication Foundation_1 overview
  10. 语音识别芯片原理是什么 语音识别芯片有哪些【详解】
  11. 悦读上品 得乎益友
  12. Java与MySQL连接错误_mysql连接错误
  13. u盘如何安装2003服务器系统安装,u盘怎么安装win server2003系统是iso
  14. STEP 7 Micro/WIN 指令库下载网址大全s7-200
  15. C# Spire操作Word文档生成PDF或JPG格式
  16. python第八天 运算符的使用
  17. 中企海外周报 | 华晨与力帆合作在乌拉圭建厂;奇瑞在沙特发布全新SUV
  18. 【JAVA】-- 黄金矿工小游戏(二)(实现思路+每步代码)
  19. 第五节 FLASH 程序存储器和数据EEPROM
  20. 在输入框加入搜索图标的问题

热门文章

  1. 图(关系网络)数据分析及阿里应用
  2. 流量隔离方案 Dpath 护航双十一新零售
  3. 数字基础设施开源操作系统欧拉全新发布
  4. 2019工作榜单:程序员吸金榜,AI排第一,这个我服!
  5. 云漫圈 | 如何给女朋友解释什么是HTTP
  6. shell 提取sql 的字段名表名_Mysql 常用SQL语句集锦(仅学习)
  7. 请写一个java程序实现线程连接池功能_写一个java程序实现线程连接池的功能
  8. java读取空格_java 读取文件路径空格和中文的处理
  9. linux环境 Oracle客户端连接远程Oracle服务端
  10. 使用PLSQL 远程连接oracle数据库