
【别再到处找免费股票数据API了官方204个接口32篇一次讲透 #05】季度利润现金流去哪找业绩预告财务指标一页取系列别再到处找免费股票数据API了官方204个接口32篇一次讲透连载项目 · 纯 GET 取数 · 仅依赖 requests适用想做财务因子选股 / 业绩跟踪但还在财报 PDF 里手动扒季度利润、现金流的读者数据由官方公开接口提供。本篇给沪深A股「季度利润 / 季度现金流 / 业绩预告 / 财务指标」4 个端点的分组地图、一页取全的代码、报告期与指标口径的坑全部只依赖 requests所有示例均为演示数据不构成投资建议。1. 你将得到什么读完这一篇你能拿走四样东西一张分组地图4 个业绩端点按「利润表 / 现金流量表 / 预告 / 综合指标」分成 4 类一页取全的代码/hs/gs/jdlr拿季度利润/hs/gs/cwzb拿 ROE / 营收等综合指标报告期参数的取法业绩接口要传report_date如20240331不传默认最新三个真实踩坑点都是第一次用几乎一定会踩的。代码全部自包含复制进.py直接能跑不依赖 numpy / pandas。2. 本篇取数约定全部接口都是GET query 参数token 放在查询串里?tokenxxx统一基址https://api.zhituapi.com代码块里的你的token是占位符换成你的 token 即可所有接口路径均取自官方已验证文档跨篇零重复。3. 4 个端点分 4 类先建立地图。业绩类一共 4 个端点按用途分类端点用途更新频率利润表/hs/gs/jdlr季度利润营收 / 净利 / 毛利每季披露后现金流量/hs/gs/jdxj季度现金流量经营 / 投资 / 筹资每季披露后业绩预告/hs/gs/yjyg业绩预告预增 / 预减 / 扭亏预告期综合指标/hs/gs/cwzb财务指标ROE / 营收同比 / 资产负债率每季披露后4. 核心模板函数importrequests,time BASEhttps://api.zhituapi.comTOKEN你的tokendef_hit_key(d,*cands,defaultNone):ifnotisinstance(d,dict):returndefaultforcincands:ifcindandd[c]notin(None,,-,null):returnd[c]low{str(k).lower():vfork,vind.items()}forcincands:vlow.get(str(c).lower())ifvnotin(None,,-,null):returnvreturndefaultdef_to_float(v,defaultNone):try:ifvin(None,,-,null,None):returndefaultreturnfloat(v)except(TypeError,ValueError):returndefaultdef_get(path,paramsNone,timeout10,retries2,backoff0.6,defaultNone):q{token:TOKEN}ifparams:q.update(params)lastforiinrange(retries1):try:rrequests.get(BASEpath,paramsq,timeouttimeout)ifr.status_code200:try:returnr.json()exceptValueError:returndefault lastHTTP %s %s%(r.status_code,(r.textor).strip()[:80])exceptExceptionase:last%s: %s%(type(e).__name__,e)ifiretries:time.sleep(backoff*(i1))return{_error:last}# ---------- 封装code 可选 report_date----------deffetch_quarter_profit(code,rdNone):p{code:code}ifrd:p[report_date]rdreturn_get(/hs/gs/jdlr,p,default[])deffetch_quarter_cash(code,rdNone):p{code:code}ifrd:p[report_date]rdreturn_get(/hs/gs/jdxj,p,default[])deffetch_forecast(code):return_get(/hs/gs/yjyg,{code:code},default[])deffetch_indicators(code,rdNone):p{code:code}ifrd:p[report_date]rdreturn_get(/hs/gs/cwzb,p,default[])# ---------- ROE 营收同比 一行取 ----------defroe_and_growth(code,rdNone):rowsfetch_indicators(code,rd)ifisinstance(rows,dict)and_errorinrows:returnNone,rows[_error]row(rowsor[{}])[0]return{roe:_to_float(_hit_key(row,roe,净资收益率,defaultNone)),rev_yoy:_to_float(_hit_key(row,rev_yoy,营收同比,yysr_tb,defaultNone)),},None# ---------- 校验 ----------defrun_check():fake[{roe:12.3,rev_yoy:8.5}]_origfetch_indicators fetch_indicatorslambdac,rdNone:fake m,errroe_and_growth(000001.SZ)fetch_indicators_origasserterrisNoneandm[roe]12.3andm[rev_yoy]8.5# 报告期格式assertfetch_quarter_profit(000001.SZ,20240331)isnotNoneprint(校验通过)if__name____main__:run_check()print(-*62)code000001.SZrd20240331forname,fnin[(季度利润,lambda:fetch_quarter_profit(code,rd)),(季度现金流,lambda:fetch_quarter_cash(code,rd)),(业绩预告,lambda:fetch_forecast(code)),(财务指标,lambda:fetch_indicators(code,rd))]:datafn()ifisinstance(data,dict)and_errorindata:print(%-10s - %s%(name,data[_error][:60]))else:print(%-10s - %d 条%(name,len(data)ifisinstance(data,list)else1))5. 跑通示例把上面的代码复制到本地填入你的 token 即可直接运行传入代码与报告期roe_and_growth一行取 ROE 与营收同比4 个业绩接口一页拉全各字段含义见前文各小节。6. 坑与注意事项坑 1业绩接口要传报告期report_date格式是YYYYMMDD季末日。/hs/gs/jdlr、/hs/gs/jdxj、/hs/gs/cwzb都可传report_date20240331一季度末不传默认返回最新一期。但季度利润接口如果某期还没披露会返回空做历史回测要按披露日历逐期请求别一次性全用默认值。坑 2业绩预告和正式财报口径不同别混算。/hs/gs/yjyg是预告区间值、预增预减/hs/gs/jdlr是正式季报确定值。做营收同比要用正式财报的rev_yoy预告只能做方向判断直接拿预告值算因子会引入噪音。坑 3ROE / 资产负债率的单位与符号要看清。/hs/gs/cwzb的roe通常是百分比数值如12.3表示 12.3%不是小数资产负债率同理。做因子归一化前先确认单位别把 12.3 当 0.123 算排序会全反。7. 小结与下篇预告本篇把沪深A股 4 个业绩端点分成 4 类roe_and_growth一行取 ROE 与营收同比_to_float处理指标单位。下一篇《【别再到处找免费股票数据API了官方204个接口32篇一次讲透 #06】Python实时行情总报错五档盘口逐笔一次跑通》用/hs/real·/hs/public·/hs/custom一组接口把实时行情 / 五档盘口 / 逐笔交易一次跑通。8. 免责声明本文仅演示沪深A股业绩数据的取数方法所有代码示例均为演示数据未含任何真实行情数值不构成投资建议亦不承诺收益。