ARTICLE DETAIL

资讯详情

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

【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #10】财务报表三表去哪下?8个接口,资产负债表·利润表·现金流一次取

【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #10】财务报表三表去哪下?8个接口,资产负债表·利润表·现金流一次取 【别再到处找免费股票数据API了官方204个接口32篇一次讲透 #10】财务报表三表去哪下8个接口资产负债表·利润表·现金流一次取系列别再到处找免费股票数据API了官方204个接口32篇一次讲透连载项目 · 纯 GET 取数 · 仅依赖 requests适用做量化 / 选股 / 复盘但还在手动导 CSV、网页复制、自写爬虫的读者。本篇给沪深A股财务报表的 8 个端点的分组地图、一键拉全三表与股东数据的代码全部只依赖 requests所有示例均为演示数据不构成投资建议。1. 你将得到什么读完这一篇你能拿走四样东西一张分组地图8 个端点按用途分组知道什么数据该敲哪个门一行取数的代码主要端点一次返回不用循环拼装资产负债表/利润表/现金流量表与十大股东的字段解析坑三个真实踩坑点都是第一次用几乎一定会踩的。代码全部自包含复制进.py直接能跑不依赖 numpy / pandas。2. 本篇取数约定全部接口都是GET query 参数token 放在查询串里?tokenxxx统一基址https://api.zhituapi.com代码块里的你的token是占位符换成你的 token 即可所有接口路径均取自官方已验证文档跨篇零重复。3. 8 个端点分 4 组先建立地图。沪深A股财务报表一共 8 个端点按用途分组端点用途更新频率三表/hs/fin/balance资产负债表每日盘后三表/hs/fin/income利润表每日盘后三表/hs/fin/cashflow现金流量表每日盘后财务指标/hs/fin/ratios财务指标每日盘后股本/hs/fin/capital股本结构每日盘后股东/hs/fin/topholder十大股东季度股东/hs/fin/flowholder流通股东季度股东/hs/fin/hm股东户数季度4. 核心模板函数importrequests,timefromurllib.parseimportquote BASEhttps://api.zhituapi.comTOKEN你的token# ---------- 1. 字段容错与类型归一 ----------def_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):returndefault# ---------- 2. 统一请求重试 退避 ----------def_get(path,paramsNone,timeout10,retries2,backoff0.6,defaultNone):返回 JSON失败重试 retries 次仍失败则返回 {_error: 原因}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}deffetch_hs_fin_balance():return_get(/hs/fin/balance,default[])deffetch_hs_fin_income():return_get(/hs/fin/income,default[])deffetch_hs_fin_cashflow():return_get(/hs/fin/cashflow,default[])deffetch_hs_fin_ratios():return_get(/hs/fin/ratios,default[])deffetch_hs_fin_capital():return_get(/hs/fin/capital,default[])deffetch_hs_fin_topholder():return_get(/hs/fin/topholder,default[])deffetch_hs_fin_flowholder():return_get(/hs/fin/flowholder,default[])deffetch_hs_fin_hm():return_get(/hs/fin/hm,default[])# ---------- 3. 校验 ----------defrun_check():assert_hit_key({Code:000001,Name:平安银行},code,dm)000001assert_to_float(-)isNoneand_to_float(12.5)12.5enc/x/%s%quote(示例)assert示例notinencand%inencprint(校验通过)if__name____main__:run_check()print(-*62)forname,pathin[(资产负债表,/hs/fin/balance),(利润表,/hs/fin/income),(现金流量表,/hs/fin/cashflow),(财务指标,/hs/fin/ratios),(股本结构,/hs/fin/capital),(十大股东,/hs/fin/topholder),(流通股东,/hs/fin/flowholder),(股东户数,/hs/fin/hm)]:data_get(path,default[])ifisinstance(data,dict)and_errorindata:print(%-12s %-40s - %s%(name,path,data[_error][:60]))else:print(%-12s %-40s - %d 条%(name,path,len(data)))5. 跑通示例把上面的代码复制到本地填入你的 token 即可直接运行它会请求对应接口、拉取真实数据并输出各端点的条数各字段含义见前文各小节。6. 坑与注意事项坑 1三表字段名不统一。资产负债表用「资产合计」、利润表用「营业收入」别用同一套 key 解析用 _hit_key 容错大小写/中英文。坑 2现金流量表分三段。经营/投资/筹资三段要确认取哪段否则会漏带报告期参数不传默认最新季度。坑 3股东是季度快照。十大股东/流通股东带报告期不用最新报告期会取到旧季度做排行前先确认报告期。7. 小结与下篇预告本篇把沪深A股财务报表类 8 个端点分成 4 组给出一行拉全三表与股东数据的代码并用 run_check 验证字段容错。下一篇《【别再到处找免费股票数据API了官方204个接口32篇一次讲透 #11】指数行情去哪查2个接口主要指数实时列表一次拉》用本篇同组接口把下一类数据一次取全。8. 免责声明本文仅演示沪深A股财务报表数据的取数方法所有代码示例均为演示数据未含任何真实行情数值不构成投资建议亦不承诺收益。
返回列表