最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何獲取實時股票信息的方法示例

 更新時間:2022年06月26日 08:48:02   作者:James.Ying  
本文主要介紹了Python如何獲取實時股票信息的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

如何獲取實時股票信息

股票信息的接口有很多,之前大家常用的是新浪的,但在年初的時候,新浪的接口突然不能使用,給大家造成了很大的困擾,為此網(wǎng)上也有很多教程教大家如何從新浪獲取數(shù)據(jù),跟著教程弄了半天也不行,索性換到126(也就是網(wǎng)易了),感覺速度都還不錯。

首先我們看下接口地址:http://api.money.126.net/data/feed/1000001,money.api

其中的1000001就是股票代碼了,跟新浪的不同,他的第一位代表交易所,后面6位是股票代碼

  • 0:上交所
  • 1:深交所
  • 2:北交所

先通過瀏覽器看下數(shù)據(jù)結(jié)構(gòu):

_ntes_quote_callback({
    "1000001": {
        "code": "1000001",
        "percent": 0.002113,
        "high": 14.25,
        "askvol3": 1026758,
        "askvol2": 810700,
        "askvol5": 290493,
        "askvol4": 461100,
        "price": 14.23,
        "open": 14.2,
        "bid5": 14.18,
        "bid4": 14.19,
        "bid3": 14.2,
        "bid2": 14.21,
        "bid1": 14.22,
        "low": 14.11,
        "updown": 0.03,
        "type": "SZ",
        "bidvol1": 323600,
        "status": 0,
        "bidvol3": 244200,
        "bidvol2": 673474,
        "symbol": "000001",
        "update": "2022/06/25 17:59:57",
        "bidvol5": 343500,
        "bidvol4": 145200,
        "volume": 86604061,
        "askvol1": 817268,
        "ask5": 14.27,
        "ask4": 14.26,
        "ask1": 14.23,
        "name": "平安銀行",
        "ask3": 14.25,
        "ask2": 14.24,
        "arrow": "↑",
        "time": "2022/06/24 16:00:58",
        "yestclose": 14.2,
        "turnover": 1227798687.09
    }
});

可以看出_ntes_quote_callback()中的就是標準的json數(shù)據(jù),我們只要通過正則表達式就可以取出。
我們先定義一個數(shù)據(jù)結(jié)構(gòu):

class NetTick:
    def __init__(self, dict={}):
        self.name = dict.get('name')                # 股票名稱
        self.yestclose = dict.get('yestclose')      # 昨日收盤價
        self.bidvol5 = dict.get('bidvol5')          # 買5數(shù)量
        self.bidvol4 = dict.get('bidvol4')          # 買4數(shù)量
        self.bidvol3 = dict.get('bidvol3')          # 買3數(shù)量
        self.bidvol2 = dict.get('bidvol2')          # 買2數(shù)量
        self.bidvol1 = dict.get('bidvol1')          # 買1數(shù)量
        self.bid5 = dict.get('bid5')                # 買5價格
        self.bid4 = dict.get('bid4')                # 買4價格
        self.bid3 = dict.get('bid3')                # 買3價格
        self.bid2 = dict.get('bid2')                # 買2價格
        self.bid1 = dict.get('bid1')                # 買1價格
        self.askvol5 = dict.get('askvol5')          # 賣5數(shù)量
        self.askvol4 = dict.get('askvol4')          # 賣4數(shù)量
        self.askvol3 = dict.get('askvol3')          # 賣3數(shù)量
        self.askvol2 = dict.get('askvol2')          # 賣2數(shù)量
        self.askvol1 = dict.get('askvol1')          # 賣1數(shù)量
        self.ask5 = dict.get('ask5')                # 賣5價格
        self.ask4 = dict.get('ask4')                # 賣4價格
        self.ask3 = dict.get('ask3')                # 賣3價格
        self.ask2 = dict.get('ask2')                # 賣2價格
        self.ask1 = dict.get('ask1')                # 賣1價格
        self.symbol = dict.get('symbol')            # 股票代碼 第一位1:深交所 0:上交所 2北交所
        self.volume = dict.get('volume')            # 成交量
        self.price = dict.get('price')              # 當前價格
        self.open = dict.get('open')                # 開盤價
        self.low = dict.get('low')                  # 最低價
        self.high = dict.get('high')                # 最高價
        self.code = dict.get('code')                # 去除標記為的股票代碼
        self.turnover = dict.get('turnover')        # 成交額
        self.percent = dict.get('percent')          # 漲跌幅
        self.updown = dict.get('updown')            # 漲跌金額

通過研究,我們發(fā)現(xiàn)126的接口支持多個股票查詢,那我們可以定義兩個方法,一個查單個,一個查多個,具體實現(xiàn)如下:

import requests
import re
from models.nettick import NetTick
from utils.packages import *



class NetEaseData:
    @staticmethod
    def get_realtime_data(symbol):
        """
        網(wǎng)易的實時數(shù)據(jù)接口
        :param symbol: 股票代碼
        :return: Tick
        """
        code = NetEaseData.convert_market(symbol)
        try:
            response = requests.get("http://api.money.126.net/data/feed/{},money.api".format(code)).text
            re_find = NetEaseData.__re_find(response)
            if re_find is not None:
                find_stock = re_find.get(code)
                if find_stock is not None:
                    return NetTick(find_stock)

        except Exception as e:
            logger.error('請求網(wǎng)易接口出錯,錯誤信息:{}'.format(e))

        return None

    @staticmethod
    def convert_market(other_market_code=str):
        """
        轉(zhuǎn)換通用股票代碼 sz sh bj開頭+股票代碼
        """
        if other_market_code[0:2].lower() == 'sh':
            return '0' + other_market_code[2:]
        elif other_market_code[0:2].lower() == 'sz':
            return '1' + other_market_code[2:]
        else:
            return '2' + other_market_code[2:]


    @staticmethod
    def get_realtime_datas(symbols=[]):
        """
        網(wǎng)易的實時數(shù)據(jù)接口
        :param symbols: 股票代碼列表
        :return: Ticks列表
        """
        codes = [NetEaseData.convert_market(code) for code in symbols]
        result = []
        try:
            response = requests.get("http://api.money.126.net/data/feed/{},money.api".format(','.join(codes))).text
            re_find = NetEaseData.__re_find(response)
            if re_find is not None:
                for code in re_find:
                    item = re_find[code]
                    result.append(NetTick(item))
        except Exception as e:
            logger.error('請求網(wǎng)易接口出錯,錯誤信息:{}'.format(e))

        return result

    @staticmethod
    def __re_find(response):
        find = re.findall(r"_ntes_quote_callback\((.*)\);", response)
        if len(find) >= 1:
            return to_obj(find[-1])

        return None


if __name__ == '__main__':
    ticks = NetEaseData.get_realtime_datas(['sh588000', 'sz000001', 'bj831010'])
    [print(tick.symbol, tick.name, tick.price) for tick in ticks]
    tick = NetEaseData.get_realtime_data('sz127045')
    print(tick.symbol, tick.name, tick.price)

使用也非常簡單

  • NetEaseData.get_realtime_data:獲取單個股票
  • NetEaseData.get_realtime_datas : 獲取多個股票數(shù)據(jù)

這里我股票代碼用的是兼容原有新浪模式的,你可以自己做下修改。

到此這篇關(guān)于Python如何獲取實時股票信息的方法示例的文章就介紹到這了,更多相關(guān)Python獲取實時股票信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python入門教程(五)Python變量的用法

    Python入門教程(五)Python變量的用法

    這篇文章主要介紹了Python入門教程(五)Python變量的用法,Python是一門非常強大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • python tkinter圖形界面代碼統(tǒng)計工具(更新)

    python tkinter圖形界面代碼統(tǒng)計工具(更新)

    這篇文章主要為大家詳細介紹了python tkinter圖形界面代碼統(tǒng)計工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • python中的隨機函數(shù)小結(jié)

    python中的隨機函數(shù)小結(jié)

    這篇文章主要介紹了python中的隨機函數(shù)小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Django ImageFiled上傳照片并顯示的方法

    Django ImageFiled上傳照片并顯示的方法

    今天小編就為大家分享一篇Django ImageFiled上傳照片并顯示的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 基于Python實現(xiàn)文件分類器的示例代碼

    基于Python實現(xiàn)文件分類器的示例代碼

    這篇文章主要為大家詳細介紹了如何基于Python實現(xiàn)文件分類器,目的主要是為了將辦公過程中產(chǎn)生的各種格式的文件完成整理,感興趣的可以了解一下
    2023-04-04
  • 基于python實現(xiàn)銀行管理系統(tǒng)

    基于python實現(xiàn)銀行管理系統(tǒng)

    這篇文章主要介紹了基于python實現(xiàn)銀行管理系統(tǒng),文中有非常詳細的代碼示例,對正在學習python項目制作的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python全棧之文件函數(shù)和函數(shù)參數(shù)

    Python全棧之文件函數(shù)和函數(shù)參數(shù)

    這篇文章主要為大家介紹了Python的文件函數(shù)和函數(shù)參數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python腳本在后臺持續(xù)運行的方法詳解

    Python腳本在后臺持續(xù)運行的方法詳解

    這篇文章主要為大家詳細介紹了Python腳本在后臺持續(xù)運行的相關(guān)方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-04-04
  • python 進程的幾種創(chuàng)建方式詳解

    python 進程的幾種創(chuàng)建方式詳解

    這篇文章主要介紹了python 進程的幾種創(chuàng)建方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Pandas分組聚合之groupby()、agg()方法的使用教程

    Pandas分組聚合之groupby()、agg()方法的使用教程

    今天看到pandas的聚合函數(shù)agg,比較陌生,平時的工作中處理數(shù)據(jù)的時候使用的也比較少,為了加深印象,總結(jié)一下使用的方法,下面這篇文章主要給大家介紹了關(guān)于Pandas分組聚合之groupby()、agg()方法的使用教程,需要的朋友可以參考下
    2023-01-01

最新評論

搜索| 延川县| 和顺县| 南开区| 桐城市| 陇南市| 广昌县| 马尔康县| 泰安市| 宝丰县| 筠连县| 南涧| 将乐县| 天峻县| 八宿县| 汉沽区| 浦县| 广州市| 昔阳县| 阿合奇县| 特克斯县| 云梦县| 凌源市| 贵定县| 天气| 疏勒县| 信阳市| 文安县| 阆中市| 丰镇市| 普兰县| 南和县| 马山县| 吉林市| 梧州市| 平定县| 汤阴县| 宁乡县| 阿坝县| 共和县| 霍山县|