十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【零依赖量化数据实战 #15】可转债数据三件套:3 个 URL 做转债全貌扫描

【零依赖量化数据实战 #15】可转债数据三件套:3 个 URL 做转债全貌扫描 【可转债 #15】可转债清单 / 比较 / 行情3 个 URL 做转债全貌扫描系列《零依赖量化数据实战》零依赖 · 纯 GET · 不 import 任何 SDK适用想做可转债全市场扫描、转债估值比较、盘中行情监控不想装库或对接多个数据源的开发者你将得到什么3 个「可转债」端点的路径、返回字段和语义全量清单 / 比较 / 实时行情照公开文档核对过的不是猜的一段kzz_snapshot()把 3 个端点一次性拉齐做一张「可转债全貌」快照字段名容错写法候选键命中对字段名不敏感、对形态list / dict不敏感完整可复制运行代码把你的token换成真实智兔证书即可直接跑一、三个端点一张语义表「可转债全貌」拆成 3 个端点路径前缀统一走/kzz/无路径参数。GET https://api.zhituapi.com/kzz/list 可转债清单全市场标的列表 GET https://api.zhituapi.com/kzz/comparison 可转债比较估值/溢价率对比 GET https://api.zhituapi.com/kzz/spot 可转债行情实时报价鉴权统一?token你的token。3 个端点都是整板/全量返回无路径参数。list给标的宇宙代码名称comparison给估值对比数据溢价率/到期收益率等spot给实时行情报价。一个实际用法先用list拿到全市场可转债清单 → 用comparison筛出低溢价/高收益的标的 → 用spot看实时价格做买卖判断。三步串起来就是一张「可转债扫描看板」。二、字段名不固定用候选键命中可转债接口的返回字段名可能因数据源更新而变化。与其硬编码字段名改了就全崩不如用候选键列表命中抽取def_hit_key(d,cands):从字典中按候选键名列表命中第一个存在的键。ifnotisinstance(d,dict):returnNoneforkincands:ifkind:returnkreturnNonedef_to_float(v):把可能是 5.2% / 5.2 / None 的值归一成 float。ifvisNone:returnNoneifisinstance(v,(int,float)):returnfloat(v)sstr(v).replace(%,).replace(,,).strip()try:returnfloat(s)exceptValueError:returnNonedefsummarize_kzz(name,data):从可转债返回中抽取关键字段做汇总对字段名不敏感、对形态不敏感。ifdataisNone:returnf{name}: 无数据ifisinstance(data,list):ifnotdata:returnf{name}: 0 条firstdata[0]ifisinstance(data[0],dict)else{}code_key_hit_key(first,[code,dm,bondcode,zqdm,symbol])name_key_hit_key(first,[name,mc,bondname,shortname])price_key_hit_key(first,[price,last,new,zxj,close,dqp])parts[f{name}:{len(data)}条]ifcode_key:parts.append(f首条代码{first.get(code_key)})ifname_key:parts.append(f名称{first.get(name_key)})ifprice_key:parts.append(f价格键{first.get(price_key)})return | .join(parts)ifisinstance(data,dict):keyslist(data.keys())[:6]returnf{name}: 聚合对象键{keys}returnf{name}:{type(data).__name__}这样就算数据源把dm改成bondcode代码不用动。命不中也不报错——只是那行汇总少一个字段。三、可转债扫描把 3 个端点拉齐做看板核心不是「把三个接口都调通」而是把 3 个维度的数据归一后做全貌扫描。我们关心两件事每个端点各返回多少条、首条长什么样确认数据到位清单/比较/行情的数据是否对齐标的数是否一致importsys,timeimportrequests TOKEN你的token# ← 换成你的真实 tokenBASEhttps://api.zhituapi.comKZZ_ENDPOINTS{list:(/kzz/list,可转债清单),comparison:(/kzz/comparison,可转债比较),spot:(/kzz/spot,可转债行情),}deffetch(name,tokenTOKEN,timeout15):拉一个可转债端点返回 (data, err)。path,_KZZ_ENDPOINTS[name]urlf{BASE}{path}try:rrequests.get(url,params{token:token},timeouttimeout)exceptrequests.RequestExceptionase:returnNone,f网络异常{e}ifr.status_code!200:returnNone,f{r.status_code}{r.text.strip()[:140]}try:payloadr.json()exceptValueError:returnNone,f非 JSON 返回{r.text[:140]}ifisinstance(payload,dict):detailpayload.get(detail)orpayload.get(error)returnNone,f业务错误{detailorlist(payload)[:6]}returnpayload,Nonedefkzz_snapshot(tokenTOKEN,sleep0.2):拉 3 个可转债端点做一张「可转债全貌」快照。iftoken你的token:print([演示] TOKEN 为占位符下面请求会返回错误码契约请换成真实 token 后再跑。)snap{}fornameinKZZ_ENDPOINTS:data,errfetch(name,tokentoken)iferr:print(f{name}({KZZ_ENDPOINTS[name][1]}): 暂不可用{err})snap[name]Noneelse:print(summarize_kzz(name,data))snap[name]data time.sleep(sleep)returnsnapsleep0.2是限频保护——3 个端点 0.2 秒间隔 ≈ 0.6 秒远在限频内。四、代码自验结果离线自测 6 项全 PASS真实输出不联网selftest PASS: 端点注册完整(3/3) / _hit_key 命中 / _to_float 去百分号 / 列表汇总 / 空数据兜底 / 字段名不敏感 共 6 项联网跑占位 token真实输出[演示] TOKEN 为占位符下面请求会返回错误码契约请换成真实 token 后再跑。 list (可转债清单): 暂不可用404 102:Licence证书(你的token)不存在 comparison (可转债比较): 暂不可用404 102:Licence证书(你的token)不存在 spot (可转债行情): 暂不可用404 102:Licence证书(你的token)不存在3 个端点契约一致单端点失败不影响整体流程、程序友好退出。本文未编造任何可转债清单/比较/行情数据——换成覆盖该接口的正式证书后重跑即可打印真实可转债全貌。五、坑与注意事项坑 #1102 不代表路径写对了。鉴权发生在路由匹配之前。把路径故意写错配无效 token同样返回102。路径合法性只能靠客户端按白名单自查——本文 3 个路径是照公开文档核对的。坑 #2清单list是静态宇宙行情spot是动态的。kzz/list给的是可转债标的池子代码名称不含实时价实时价要走spot。comparison给的是估值对比数据溢价率/到期收益率也不含实时盘口。三个端点各管一摊别指望从清单里拿到报价。坑 #3可转债代码和股票代码形态不同。沪市可转债以11开头如113001深市以12开头如128001。与股票代码600519/000001完全不同。混用会拿不到数据——清单端点返回的是转债代码不是正股代码。坑 #4comparison的溢价率字段可能是百分号字符串。像15.3%这种形态需要_to_float去掉%再比较。直接float(15.3%)会报ValueError。系列统一的_to_float已经处理了百分号和千分位逗号。小结与下篇预告这篇你拿到了 3 个可转债端点清单/比较/行情、字段名容错抽取写法、以及一个把 3 维拉齐做可转债全貌扫描的模板顺带避开了 102 误判、清单含行情误期、转债代码混用股票代码、溢价率百分号解析四个坑。下一篇#16讲港股通资金与持股——用/ht/nbzj/lxgl陆股通流向/ht/nbzj/hgtc港股通持仓/ht/nbzj/sgtc深股通持股/ht/nbzj/ahAH 对比把视野从可转债扩展到北上资金做一张「港股通资金扫描看板」。免责声明本文仅演示公开数据接口的用法所有代码示例均以占位 token 自验未含任何真实数据文中合成数据仅为逻辑自验用途不构成投资建议亦不承诺收益。
返回列表