easyquotation獲取港股的bug

easyquotation:實時股票數據獲取

easyquotation庫,是一個非常好用的實時股票數據獲取庫,可以實時獲取新浪、騰訊的免費股票行情,集思路的分級基金行情

安裝

項目地址:https://github.com/shidenggui/easyquotation.git

pip install easyquotation

用法

import easyquotationquotation = easyquotation.use('sina') # 新浪 ['sina'] 騰訊 ['tencent', 'qq'] #獲取所有股票行情
quotation.market_snapshot(prefix=True) # prefix 參數指定返回的行情字典中的股票代碼 key 是否帶 sz/sh 前綴#獲取單支股票
quotation.real('162411') # 支持直接指定前綴,如 'sh000001'#獲取多支股票
quotation.stocks(['000001', '162411']) #同時獲取股票和行情
quotation.stocks(['sh000001', 'sz000001'], prefix=True) #獲取集思路行情
quotation = easyquotation.use('jsl') # ['jsl']
quotation.set_cookie('從瀏覽器獲取的集思錄 Cookie')
quotation.funda() # 參數可選擇利率、折價率、交易量、有無下折、是否永續來過濾
quotation.fundb() # 參數如上#獲取騰訊分時圖數據
quotation = easyquotation.use("timekline")
data = quotation.real(['603828'], prefix=True)#獲取日k數據
quotation  = easyquotation.use("daykline")
data = quotation.real(['00001','00700'])#獲取港股數據
quotation = easyquotation.use("hkquote")
data = quotation.real(['00001','00700'])

bug

獲取港股數據,easyquotation傳數字股票代碼沒問題,如果獲取指數數據如恒生指數(HSI),傳入HSI后,返回數據為空,bug原因是返回的response封裝,正則表達式只匹配了數字,所以傳入字母代碼后沒有進行封裝。

代碼bug

在easyquotation庫的HKQuote類中,format_response_data函數的正則表達式:r’v_r_hk\d+=“.*?”',\d匹配了數字股票代碼,港股的指數代碼是字母的,所以將\d改成 .

    def format_response_data(self, rep_data, **kwargs):stocks_detail = "".join(rep_data)stock_dict = {}for raw_quotation in re.findall(r'v_r_hk\d+=".*?"', stocks_detail):quotation = re.search('"(.*?)"', raw_quotation).group(1).split("~")stock_dict[quotation[2]] = dict(lotSize=float(quotation[0]),name=quotation[1],price=float(quotation[3]),lastPrice=float(quotation[4]),openPrice=float(quotation[5]),amount=float(quotation[6]),time=quotation[30],dtd=float(quotation[32]),high=float(quotation[33]),low=float(quotation[34]),)return stock_dict

bug修改方式

繼承HKQuote類,重寫format_response_data函數,然后如果要獲取港股數據,使用自己的類

import re
from easyquotation.hkquote import HKQuoteclass IHKQuote(HKQuote):def format_response_data(self, rep_data, **kwargs):stocks_detail = "".join(rep_data)stock_dict = {}for raw_quotation in re.findall(r'v_r_hk.+=".*?"', stocks_detail):quotation = re.search('"(.*?)"', raw_quotation).group(1).split("~")stock_dict[quotation[2]] = dict(lotSize=float(quotation[0]),name=quotation[1],price=float(quotation[3]),lastPrice=float(quotation[4]),openPrice=float(quotation[5]),amount=float(quotation[6]),time=quotation[30],dtd=float(quotation[32]),high=float(quotation[33]),low=float(quotation[34]),)return stock_dict

調用方式

from amend_easyquotation import IHKQuotequotation = IHKQuote()
stock = quotation.stocks(['HSI'])

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37150.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37150.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37150.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙開發 之 健康App案例

1.項目介紹 該項目是記錄用戶日常飲食情況,以及針對不同食物攝入營養不同會有對應的營養攝入情況和日常運動消耗情況,用戶可以自己添加食品以及對應的熱量。 1.1登陸頁 1.2飲食統計頁 1.3 食物列表頁 2.登陸頁 2.1自定義彈框 import preferences from oh…

IP地址查詢和代理服務器:雙重保護隱私

隨著網絡應用的日益普及,我們的個人信息和數據安全面臨前所未有的挑戰。在此背景下,IP地址查詢和代理服務器成為保護個人隱私和網絡安全的兩大關鍵工具。本文將從IP地址查詢的原理和應用出發,深入剖析代理服務器在網絡隱私保護中的作用&#…

掌握批處理的高級技巧:使用正則表達式

掌握批處理的高級技巧:使用正則表達式 在Windows批處理腳本編寫中,正則表達式是一個強大的工具,它可以幫助我們進行復雜的字符串匹配和處理。雖然批處理腳本本身并不直接支持正則表達式,但我們可以通過一些技巧和外部工具來實現正…

AI視頻教程下載-數據分析中的提示工程:Python、Pandas、ChatGPT

Prompt Engineering for Data Analysis Python, Pandas, ChatGPT ChatGPT與Python:無需編程。借助ChatGPT、Python、Pandas及提示工程進行數據分析與數據可視化 "利用Python、Pandas和ChatGPT進行數據分析的提示工程"是一門開創性的課程,它通…

SpringBoot(二)SpringBoot多環境配置

Spring框架常用注解簡單介紹 SpringMVC常用注解簡單介紹 SpringBoot(一)創建一個簡單的SpringBoot工程 SpringBoot(二)SpringBoot多環境配置 SpringBoot(三)SpringBoot整合MyBatis SpringBoot(四…

vue-advanced-chat 聊天控件的使用

測試代碼:https://github.com/robinfoxnan/vue-advanced-chat-test0 控件源碼:https://github.com/advanced-chat/vue-advanced-chat 先上個效果圖: 這個控件就是專門為聊天而設計的,但是也有一些不足: 1&#xf…

【層序遍歷】個人練習-Leetcode-102. Binary Tree Level Order Traversal

題目鏈接&#xff1a;https://leetcode.cn/problems/binary-tree-level-order-traversal/description/ 題目大意&#xff1a;給一棵樹的根&#xff0c;要求以vector<vector<int>>形式給出層序遍歷結果。 思路&#xff1a;層序遍歷并不難&#xff0c;tricky的點在…

Python學習筆記26:進階篇(十五)常見標準庫使用之性能測試cProfile模塊學習使用

前言 本文是根據python官方教程中標準庫模塊的介紹&#xff0c;自己查詢資料并整理&#xff0c;編寫代碼示例做出的學習筆記。 根據模塊知識&#xff0c;一次講解單個或者多個模塊的內容。 教程鏈接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 本文主要…

【vuejs】首次頁面加載時觸發那些聲明周期鉤子函數

1. 首次頁面加載觸發的鉤子 在Vue.js中&#xff0c;頁面或組件的首次加載會觸發一系列預定義的生命周期鉤子函數&#xff0c;這些鉤子函數按照特定的順序執行&#xff0c;允許開發者在組件的不同階段執行代碼。以下是首次頁面加載時觸發的鉤子及其作用&#xff1a; 2.1 befor…

.net core 的 winform 的 瀏覽器控件 WebView2

在.NET Core WinForms應用程序中&#xff0c;沒有直接的“瀏覽器控件”&#xff0c;因為WinForms不支持像WebBrowser控件那樣的功能。但是&#xff0c;你可以使用WebView2控件&#xff0c;它是一個基于Chromium的瀏覽器內核&#xff0c;可以在WinForms應用程序中嵌入Web內容。 …

R語言 | 使用ggplot繪制柱狀圖,在柱子中顯示數值和顯著性

原文鏈接&#xff1a;使用ggplot繪制柱狀圖&#xff0c;在柱子中顯示數值和顯著性 本期教程 獲得本期教程示例數據&#xff0c;后臺回復關鍵詞&#xff1a;20240628。&#xff08;PS&#xff1a;在社群中&#xff0c;可獲得往期和未來教程所有數據和代碼&#xff09; 往期教程…

搭建ASPP:多尺度信息提取網絡

文章目錄 介紹代碼實現 介紹 ASPP&#xff08;Atrous Spatial Pyramid Pooling&#xff09;&#xff0c;空洞空間卷積池化金字塔。簡單理解就是個至尊版池化層&#xff0c;其目的與普通的池化層一致&#xff0c;盡可能地去提取特征。ASPP 的結構如下&#xff1a; 如圖所示&…

Nuxt框架 和 Vite框架比較(四)

共同點 基于 Vue.js&#xff1a;Nuxt 和 Vite 都是圍繞 Vue.js 構建的&#xff0c;這意味著它們可以利用 Vue.js 的響應式數據綁定和組件系統。 現代前端開發&#xff1a;兩者都支持現代前端開發實踐&#xff0c;如組件化、模塊化和單文件組件&#xff08;SFCs&#xff09;。 V…

十二、Yocto集成ROS2 app程序(package)

文章目錄 Yocto集成ROS2 app程序1. 添加一個ros2 package應用程序2. 添加bb文件集成app應用程序 Yocto集成ROS2 app程序 本篇文章為基于raspberrypi 4B單板的yocto實戰系列的第十二篇文章&#xff1a; 一、yocto 編譯raspberrypi 4B并啟動 二、yocto 集成ros2(基于raspberrypi…

【MotionCap】DROID-SLAM 1 :介紹及安裝

DROID-SLAM :DROID-SLAM: Deep Visual SLAM for Monocular DROID-SLAM:適用于單目、立體和 RGB-D 相機的深度視覺 SLAM Stereo, and RGB-D Cameras https://arxiv.org/abs/2108.10869DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Camerasfile:///X:/04_mo…

GuLi商城-前端啟動命令npm run dev

由于這里配置了dev&#xff0c;所以啟動命令是npm run dev

柯橋在職學歷提升|專科本科之自考本科哪些專業不考數學

一、管理類專業 這類專業綜合性和理論性比較強&#xff0c;除了涉及到管理學相關的理論知識外&#xff0c;還有相應的專業知識&#xff0c;目前比較典型的專業有&#xff1a;行政管理、人力資源管理、工商管理&#xff08;現代企業管理&#xff09;、工商管理&#xff08;商務管…

高通410-linux棒子設置網絡驅動

1.首先打開設備管理器 2.看到其他設備下的RNDIS&#xff0c;右鍵更新驅動程序 3.點擊瀏覽我的電腦… 最后一個

Sentinel實現區分來源

要區分來源就要寫代碼實現RequestOriginParser接口 ,注意是要實現com.alibaba.csp.sentinel.adapter.servlet.callback.RequestOriginParser 接口,別搞錯接口了。 MyRequestOriginParser.java package com.codex.terry.sentinel.origin;import com.alibaba.csp.sentinel.ad…

Linux操作系統--軟件包管理(保姆級教程)

RPM軟件包的管理 大多數linux的發行版本都是某種打包系統。軟件包可以用來發布應用軟件&#xff0c;有時還可以發布配置文件。他們比傳統結構的.tar和.gz存檔文件有幾個優勢。如它們能讓安裝過程盡可能成為不可分割的原子操作。 軟件包的安裝程序會備份它們改動過的文件。如果…