news 2026/9/26 7:14:20

【Python 量化取数指南 #11】Python 拉 ETF 数据:宽基行业一把抓

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python 量化取数指南 #11】Python 拉 ETF 数据:宽基行业一把抓

【Python 量化取数指南 #11】Python 拉 ETF 数据:宽基行业一把抓

系列:《Python 量化取数指南》|连载项目 · 纯 GET 取数 · 仅依赖 requests
适用:想用 Python 拉 ETF 行情与清单、做宽基/行业组合取数的人。

1. 你将得到什么

  • ETF 2 类端点的完整代码:ETF 实时列表、LOF 列表
  • 一个把「宽基/行业/主题」按名称过滤的小示例
  • 一个离线run_check(),不填 token 也能验证逻辑

2. 本篇取数约定

  • ETF 实时列表:/jh/hq/etflist
  • LOF 列表:/jh/hq/loflist
  • 指数代码列表(配 ETF 跟踪标的):/hz/list/hszs
  • 请求:GET https://api.zhituapi.com<path>?token=<你的token>
  • 返回多为 list;盘中才有实时价,休市为收盘快照

3. 核心模板(全系列复用)

importtime,json,requests BASE="https://api.zhituapi.com"TOKEN="你的token"def_get(path,params=None,timeout=15,retry=3,backoff=1.5):params=dict(paramsor{})params["token"]=TOKEN url=BASE+path last=Noneforiinrange(retry):try:r=requests.get(url,params=params,timeout=timeout)ifr.status_code!=200:last=f"HTTP{r.status_code}{r.text[:120]}"time.sleep(backoff*(i+1));continuetry:returnr.json(),NoneexceptValueError:last=f"非JSON响应:{r.text[:120]}"returnNone,lastexceptrequests.RequestExceptionase:last=str(e);time.sleep(backoff*(i+1))returnNone,lastdef_hit_key(d,*keys,default=None):ifnotisinstance(d,dict):returndefaultforkinkeys:ifkindandd[k]notin(None,"",[]):returnd[k]returndefaultdef_to_float(x,default=float("nan")):try:returnfloat(x)except(TypeError,ValueError):returndefault

4. 跑通示例:拉 ETF + 按关键词过滤

defdemo_etf(keyword="沪深300"):data,err=_get("/jh/hq/etflist")iferr:print("ETF列表失败:",err);returnitems=dataifisinstance(data,list)else(data.get("data")or[])print(f" ETF总数{len(items)},含「{keyword}」的:")n=0foritin(itemsor[]):name=_hit_key(it,"name","mc","基金简称")ifnameandkeywordinstr(name):code=_hit_key(it,"code","dm")price=_to_float(_hit_key(it,"price","zxj","收盘价","nav"))print(f"{code}{name}价{price}")n+=1ifn>=5:breakdefrun_check():synth=[{"code":"510300.SH","name":"沪深300ETF","price":3.9}]hit=[xforxinsynthif"沪深300"inx["name"]]print(f" [run_check] 合成命中{len(hit)}条:{hit[0]['name']}")if__name__=="__main__":demo_etf("沪深300")run_check()

返回字段说明:ETF list 每项含code/dm(代码)、name/mc(简称)、price/zxj/nav(价/净值)、amount/cje(成交额)等。字段名三套并存,统一_hit_key。

5. 坑与注意事项

  1. ETF vs LOF:/jh/hq/etflist是 ETF,/jh/hq/loflist是 LOF,别混。
  2. 价 vs 净值:实时给「价」,盘后给「净值/IOPV」,字段可能不同,先print核对。
  3. 成交额看流动性:选 ETF 重点看amount/cje,太小流动性差。
  4. 跟踪标的:ETF 跟踪某指数,指数代码走/hz/list/hszs(第 2 篇)。
  5. 休市为快照:非交易时段价是上一交易日,别当实时。
  6. 字段名三套:price/zxj/收盘价,用_hit_key。

6. 常见报错速查

报错 / 现象原因处理
429轮询太频降频 + 缓存
返回空无数据换交易日
价/净值不符字段混print(data)看真实 key
KeyError字段名不符print(data)看真实 key

7. 小结与下一篇预告

小结:ETF 用/jh/hq/etflist、LOF 用/jh/hq/loflist,核心是按name过滤宽基/行业 + 看amount判流动性;跟踪标的查/hz/list/hszs。

下一篇计划写 #12《Python 取北交所与指数:小众市场接口实测》:用北交所与指数端点,补齐小众市场的取数。

8. 免责声明

本文仅演示公开数据接口的用法,所有代码示例均为演示数据,不构成任何投资建议;实际返回字段以接口文档与你的证书权限为准。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 7:13:56

告别氛围编程:从“看起来很忙”到真正交付代码

1. "氛围编程"是怎么把人一步步送进裁员名单的1.1 从工位仪式感到周报表演我被解雇的那天&#xff0c;人事说的一句话让我沉默了很久&#xff1a;“你看起来是个不错的技术伙伴&#xff0c;但团队需要一个真正交付结果的人。”这句话几乎就是为“氛围编程”这四个字量…

作者头像 李华
网站建设 2026/9/26 7:13:48

Nonebot+轻量机器学习构建可追溯QQ群日报

简介&#xff1a;这是一份面向Python开发者与AI初学者的实战型QQ群机器人项目资源&#xff0c;聚焦人工智能在社交场景中的落地应用&#xff0c;解决群聊信息过载、关键内容难提炼的痛点。资源基于Nonebot框架构建&#xff0c;集成机器学习文本分析能力&#xff0c;可自动解析每…

作者头像 李华
网站建设 2026/9/26 7:13:12

用R语言构建互联网金融评分卡:从WOE分箱到模型落地全流程

简介&#xff1a;面向互联网金融风控与数据分析从业者&#xff0c;这份资料系统讲解如何利用高级数据挖掘技术构建信用评分和风险预测模型。内容涵盖R语言数据处理、数据清洗、数据转换与特征工程&#xff0c;以及逻辑回归、决策树、随机森林、支持向量机等常用算法&#xff1b…

作者头像 李华
网站建设 2026/9/26 7:12:17

Jev驱动的浏览器Agent插件:开源12.1k star的智能自动化工具

1. 项目概述与背景解读1.1 这到底是个什么项目先看标题&#xff1a;基于Jev的浏览器Agent插件开源&#xff0c;狂揽12.1k star。拆开来看&#xff0c;核心关键词是三个&#xff1a;Jev、浏览器Agent、插件。先解释一下浏览器Agent是什么。你可以把它理解成一个住在浏览器里的“…

作者头像 李华
网站建设 2026/9/26 7:11:10

ClickHouse在体育大数据分析中的实战:建模、调优与避坑

1. 体育数据场景拆解与ClickHouse的定位1.1 一场足球比赛到底能产生多少数据体育分析是我这几年做过最“过瘾”的大数据场景之一。先说一个真实的数据体量感受&#xff1a;一场90分钟的顶级足球赛事&#xff0c;如果接入了球员穿戴设备、光学追踪系统和实时比分数据&#xff0c…

作者头像 李华
网站建设 2026/9/26 7:10:47

##堆(优先级队列)的部分知识点##

一、堆的基本概念堆本质上是一种特殊结构、特殊要求的二叉树&#xff0c;其主要用途是作为带有优先级的队列。堆是一个完全二叉树&#xff0c;同时满足以下两个要求&#xff1a;任意一个父节点的值&#xff0c;都大于两个子节点&#xff0c;整个树的根节点就是整体最大值&#…

作者头像 李华