python用什么方法或者库可以拿到全部股票代码

发布网友 发布时间:2022-04-23 22:56

我来回答

5个回答

懂视网 时间:2022-05-03 09:31

很简单的用本地Sqlite查找股票数据。

DataSource类,返回的是Dataframe物件。这个Dataframe物件,在之后的业务,如计算股票指标,还需要特别处理。

import os
import sqlite3 as sqlite3
import numpy as np
import pandas as pd


# 数据源
class DataSource:
 def __init__(self):
 self.db = None  # 数据库
 self.cursor = None  # 指针
 self.stocks = {}  # 股票池
 self.indexs = {}  # 指数池
 self.name = ‘unit_test.db‘ # 数据源名称

 def connect(self):
 self.db = sqlite3.connect(os.path.abspath(self.name))
 self.cursor = self.db.cursor()

 def get_stocks(self, ucodes):
 # 股票池
 try:
  self.stocks = {}
  self.connect()
  self.db.row_factory = lambda cursor, row: row[0]
  for ucode in ucodes:
  sql = """SELECT t.code, t.lot, t.nmll, t.stime, t.high, t.low, t.open, t.close, t.volume
    FROM (SELECT n.code, n.lot, n.nmll, c.stime, c.high, c.low, c.open, c.close, c.volume 
    FROM s_{} AS c INNER JOIN name AS n 
     ON c.code=n.code ORDER BY c.stime DESC LIMIT 365*20) AS t 
    /*INNER JOIN financial AS f 
    ON t.code=f.code AND substr(t.stime,1,4)=f.year*/
   ORDER BY t.stime""".format(ucode)
  self.cursor.execute(sql)
  columns = [‘code‘, ‘lot‘, ‘nmll‘, ‘sdate‘, ‘high‘, ‘low‘, ‘open‘, ‘last‘, ‘vol‘]
  self.stocks[ucode] = pd.DataFrame(self.cursor.fetchall(), columns=columns)
  self.db.commit()
  self.cursor.close()
  self.db.close()
  return self.stocks
 except sqlite3.Error as e:
  print(e)

 def get_indexs(self, indexs):
 try:
  # 指数池
  self.indexs = {}
  self.connect()
  self.db.row_factory = lambda cursor, row: row[0]
  for index in indexs:
  sql = """SELECT t.code, t.lot, t.nmll, t.stime, t.high, t.low, t.open, t.close, t.volume
    FROM (SELECT n.code, n.lot, n.nmll, c.stime, c.high, c.low, c.open, c.close, c.volume 
    FROM s_{} AS c INNER JOIN name AS n 
     ON c.code=n.code ORDER BY c.stime DESC LIMIT 365*20) AS t 
    /*INNER JOIN financial AS f 
    ON t.code=f.code AND substr(t.stime,1,4)=f.year*/
   ORDER BY t.stime""".format(index.upper())
  self.cursor.execute(sql)
  columns = [‘code‘, ‘lot‘, ‘nmll‘, ‘sdate‘, ‘high‘, ‘low‘, ‘open‘, ‘last‘, ‘vol‘]
  self.indexs[index] = pd.DataFrame(self.cursor.fetchall(), columns=columns)
  self.db.commit()
  self.cursor.close()
  self.db.close()
  return self.indexs
 except sqlite3.Error as e:
  print(e)


data_source = DataSource()
df1 = data_source.get_stocks([‘00700‘])
df2 = data_source.get_indexs([‘hsi‘])

 

python+Sqlite+Dataframe打造金融股票数据结构

标签:font   commit   5*   com   import   open   print   rom   tor   

热心网友 时间:2022-05-03 06:39

首先你需要知道哪个网站上有所有股票代码,然后分析这个网站股票代码的存放方式,再利用python写一个爬虫去爬取所有的股票代码

热心网友 时间:2022-05-03 07:57

内置sqlite库,其他数据库需要自己安装,常用的都支持 mysql

热心网友 时间:2022-05-03 09:32

现在应该很少人用爬虫了吧。。。都有现成的数据接口的啊。。。
如果你是自己搭建平台或者用三方回测框架的话,可以考虑用市面上一些数据服务商提供的数据接口来获取。聚宽的JQData就挺靠谱,提供全面的基础金融数据

热心网友 时间:2022-05-03 11:23

import tushare as ts

ts.get_stock_basics()

Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。

Tushare从发布到现在,已经帮助很多用户在数据方面降低了工作压力,同时也得到很多用户的反馈,Tushare将一如既往的用免费和开源的形式分享出来,希望对有需求的人带来一些帮助。如果您觉得Tushare好用并有所收获,请通过微博、微信或者网站博客的方式分享出去,让更多的人了解和使用它,使它能在大家的使用过程中逐步得到改进和提升。Tushare还在不断的完善和优化,后期将逐步增加港股、期货、外汇和基金方面的数据,所以,您的支持和肯定才是Tushare坚持下去的动力。

Tushare的数据主要来源于网络,如果在使用过程碰到数据无法获取或发生数据错误的情况请联系我,如果有什么好的建议和意见,也请及时联系我,在此谢过。 如果在pandas/NumPy技术上有问题,欢迎加入“pandas数据分析”QQ群:297882961(已满),Tushare用户一群:14934432(已满)。 为了减少广告和无关的讨论,还特地建立了一个收费群“Tushare高级用户群”:658562506,每人50元,会员能获得更多数据和技术相关服务,同时定期组织线下交流活动。费用将用于Tushare服务器和带宽升级。 另外,请扫码关注“挖地兔”的微信公众号,定期会发布Tushare的最新动态及有价值的金融数据分析与处理方面的教程和文章。

网页链接

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com