首页/新闻资讯/正文详情

告别 akshare 依赖!a-stock-data V3.0 A 股全栈数据工具包:7 层架构一站式搞定投研数据

发布时间:2026/9/27 15:32:50 来源:云帆数科 栏目:资讯中心
告别 akshare 依赖!a-stock-data V3.0 A 股全栈数据工具包:7 层架构一站式搞定投研数据
1. 为什么我最终把 akshare 从投研脚本里拆了出去如果你写过 A 股数据脚本大概率经历过这种循环早上跑得好好的采集任务下午突然报KeyError翻源码发现是某个字段改名了或者升级一次 pandas 之后read_html的返回结构变了整条链路跟着崩。akshare 本身很优秀但它的定位是「聚合封装」一旦上游页面改版你只能等版本更新而投研任务不等人。a-stock-data V3.0 走的是另一条路它把 13 个数据源拆成 7 层架构每层直连原生 HTTP 或 TCP 接口不再套一层第三方封装。行情层用 mootdx 走通达信协议研报层直连东财 reportapi资金筹码层用东财 datacenter 的 push2his 端点。这样做的好处是故障点少、字段可控坏处是你得自己管配置和鉴权。这篇面向的是想用 Python 跑通「采集 → 清洗 → 因子落地」全链路的投研开发者。我会把 7 层架构逐层拆开给出可复制的config.toml骨架、TaoToken 统一 Key 的配置方式以及每层的验证命令和报错排查动作。你不需要先装 Claude Code普通 Python 脚本就能复用里面的内嵌代码。2. TaoToken 前置把模型调用和 Key 管理先理顺a-stock-data 本身不依赖大模型也能跑但 V3.0 的很多场景——比如用自然语言检索研报、让 AI 助手帮你归因题材——需要接一个稳定的模型入口。我试过把 Key 散落在各个脚本里结果换环境时到处找后来统一收敛到 TaoToken 上。TaoToken 在这里的角色是「统一 Key 统一入口」你申请一个 Key就能在模型对话、Coding Plan、API 调用之间复用不用为每个工具单独配一套凭证。对投研场景来说这意味着你的数据采集脚本和 AI 分析脚本可以共用同一份配置。具体操作上先去控制台创建 Key控制台入口https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite创建完把 Key 写进环境变量别硬编码进脚本。我习惯用.env加python-dotenv这样本地和服务器都能复用# .env TAOTOKEN_API_KEYsk-你的key TAOTOKEN_BASE_URLhttps://taotoken.net/api如果你主要做长期编码和 Agent 任务比如让 AI 持续帮你写因子、跑回测可以看下 Coding Plan 的额度设计Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite接入文档在这里里面有各语言 SDK 的调用示例接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite注意TaoToken 是模型调用入口不是数据源。A 股行情、研报、公告这些数据仍然由 a-stock-data 的 7 层架构直连获取两者职责别混。3. 可复制配置config.toml 骨架与 7 层参数a-stock-data V3.0 的配置我建议拆成两块一块管数据源一块管模型调用。下面这份config.toml骨架你可以直接复制按需改字段。# config.toml [general] cache_dir ./cache timeout 10 retry 3 user_agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) [llm] provider taotoken base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY model claude-sonnet max_tokens 4096 [layers.quote] # 行情层mootdx 腾讯财经 百度K线 primary mootdx fallback [tencent, baidu] enable_ma true [layers.report] # 研报层东财 reportapi 同花顺 iwencai source eastmoney enable_pdf true iwencai_key_env IWENCAI_KEY [layers.signal] # 信号层同花顺 百度股市通 东财DC northbound_cache true dragon_tiger true [layers.capital] # 资金面/筹码层东财 datacenter push2his margin_trading true block_trade true holder_count true fund_flow_days 120 [layers.news] # 新闻层东财 财联社 cls_realtime true eastmoney_news true [layers.fundamental] # 基础数据mootdx 东财 新浪 financial_fields 37 f10 true [layers.announcement] # 公告层巨潮 cninfo mootdx cninfo true exchange [sh, sz, bj]几个关键点说明一下。[llm]段里的api_key_env指向环境变量名而不是直接写 Key这样你提交代码时不会泄露。[layers.quote]的primary设成 mootdx 是因为它走 TCP 协议封 IP 风险最低腾讯和百度作为 fallback字段更全但需要处理请求头。[layers.capital]是 V3.0 新增的重点fund_flow_days 120对应 120 日个股资金流这个参数别设太大否则首次拉取会慢。[layers.report]里的iwencai_key_env是唯一需要额外 Key 的地方问财语义搜索要单独申请其余接口零鉴权。装依赖的时候注意V3.0 已经不需要 akshare 了pip install mootdx requests pandas stockstats python-dotenv tomli如果你用 Python 3.11 以下tomli用来读 toml3.11 可以直接用内置的tomllib。4. 逐层验证从行情到公告的跑通命令配置写完别急着跑全链路一层一层验证出问题好定位。下面是我常用的验证顺序。4.1 行情层验证# verify_quote.py import tomli from mootdx.quotes import Quotes with open(config.toml, rb) as f: cfg tomli.load(f) client Quotes.factory(marketstd) df client.bars(symbol600519, frequency9, offset10) print(df[[datetime, open, close, vol]].tail())frequency9是日线offset10取最近 10 根。如果返回空先检查 mootdx 的服务器连接海外环境走 TCP 容易超时这是已知问题。4.2 研报层验证# verify_report.py import requests url https://reportapi.eastmoney.com/report/list params {industryCode: *, pageSize: 5, pageNo: 1} headers {User-Agent: Mozilla/5.0} r requests.get(url, paramsparams, headersheaders, timeout10) print(r.json()[data][:2])东财 reportapi 零鉴权但pageSize别设太大5 到 10 条够验证。如果返回 403检查 User-Agent 是否被识别。4.3 资金筹码层验证# verify_capital.py import requests url https://datacenter-web.eastmoney.com/api/data/v1/get params { reportName: RPT_MARGIN_DAILY, columns: ALL, pageSize: 5, sortColumns: TRADE_DATE, sortTypes: -1, } r requests.get(url, paramsparams, timeout10) print(r.json()[result][data])这是融资融券的端点RPT_MARGIN_DAILY换成RPT_BLOCKTRADE就是大宗交易换成RPT_HOLDERNUMLATEST就是股东户数。V3.0 把这类查询封装成了eastmoney_datacenter()统一函数你可以在 SKILL.md 里找到复用逻辑。4.4 模型调用验证数据层跑通后验证 TaoToken 的模型入口# verify_llm.py import os from openai import OpenAI client OpenAI( api_keyos.environ[TAOTOKEN_API_KEY], base_urlhttps://taotoken.net/api, ) resp client.chat.completions.create( modelclaude-sonnet, messages[{role: user, content: 用一句话解释PE和PEG的区别}], ) print(resp.choices[0].message.content)如果你想先在网页上试模型效果可以直接用模型对话入口模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite5. 本篇常见报错排查跑这套链路时我踩过的坑集中在几个地方列出来你对照着查。mootdx 连接超时报socket.timeout或ConnectionRefused。mootdx 走通达信 TCP 行情端口需要国内网络环境。如果你在海外服务器上跑要么换成本地机器要么在config.toml里把primary改成tencent用 HTTP 接口替代。同花顺行业接口 401V3.0 已经把这个接口替换成东财零鉴权接口了。如果你还在用旧代码调同花顺会拿到 401。检查你的[layers.signal]配置确认走的是东财 DC 而不是同花顺。腾讯 API 字段错位网上很多教程说第 43 位是 PB实测下来第 46 位才是。字段索引错一位估值算出来就全歪了。建议用官方校准过的字段映射别照抄博客。iwencai 返回空问财语义搜索需要 API Key没配IWENCAI_KEY环境变量就会静默返回空。这个 Key 要单独申请不是 TaoToken 的 Key。北向资金历史数据不全V3.0 做了本地缓存第一次调用只拿到近期数据多调几次缓存会补全。别以为是接口坏了等缓存跑满就行。pandas 版本冲突虽然 V3.0 移除了 akshare但 stockstats 对 pandas 版本有要求。如果报AttributeError: DataFrame object has no attribute append说明你 pandas 太新append在 2.0 被移除了改用pd.concat。6. 把数据链路和模型入口接起来数据层验证通过后下一步是让 AI 助手能直接调用这些数据。a-stock-data 的 SKILL.md 本身就是结构化 Markdown 加内嵌 Python你可以把它作为系统提示词喂给模型也可以把内嵌代码抽出来做成工具函数。如果你用 Claude Code 这类编码助手把 SKILL.md 放到 skills 目录后自然语言提问就能触发数据查询。如果你用普通 Python 脚本就按第 4 节的验证代码把每层封装成函数再用 TaoToken 的模型入口做分析层。长期做因子落地和 Agent 任务的话Coding Plan 的额度比按次调用更划算适合持续跑回测和批量分析的场景。接入细节看文档里面有工具调用和流式返回的示例。整套链路的核心思路是数据归数据模型归模型Key 统一管。a-stock-data 负责把 7 层数据源直连拉通TaoToken 负责把模型调用收敛到一个入口。两边都配好之后你换机器、换环境只需要改config.toml和环境变量脚本本身不用动。

相关推荐

MCP(Model Context Protocol) 是个什么东东?从 Cline 配置 TaoToken 说起
MCP(Model Context Protocol) 是个什么东东?从 Cline 配置 TaoToken 说起

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 15:32:44

OpenClaw 学习系列之十一:并发控制系统与 TaoToken 配置实战
OpenClaw 学习系列之十一:并发控制系统与 TaoToken 配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 15:32:44

Agent 上下文管理方案全景汇总:四大框架 × 主流产品组合配 TaoToken 统一 Key 通道
Agent 上下文管理方案全景汇总:四大框架 × 主流产品组合配 TaoToken 统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 15:32:44

3分钟搞定如何注册WordPress账户图解步骤
3分钟搞定如何注册WordPress账户图解步骤

3分钟搞定如何注册WordPress账户图解步骤 改个需求建站公司拖一周,这种憋屈感谁懂?其实很多基础操作根本不用等外包,自己上手半小时就能搞定。以注册WordPress为例,网上教程满天飞,但大多要么过时,要么把简单事情复杂化。今天这期… · 2026/9/27 16:29:46

蜂动科技业界首发:5G消息融合OpenClaw,开启个人AI助手“零门槛时代”|TaoToken 统一 Key 接入配置实战
蜂动科技业界首发:5G消息融合OpenClaw,开启个人AI助手“零门槛时代”|TaoToken 统一 Key 接入配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 16:29:40

大模型API聚合平台多模态能力横向对比:GPT Image2/Seedance/Nano Banana/Seedream 的可获取性分析
大模型API聚合平台多模态能力横向对比:GPT Image2/Seedance/Nano Banana/Seedream 的可获取性分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 16:29:34

Claude Code 不听 CLAUDE.md 时,我们该从哪里下手:用 hooks 与 InstructionsLoaded 排查配置
Claude Code 不听 CLAUDE.md 时,我们该从哪里下手:用 hooks 与 InstructionsLoaded 排查配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 16:29:34

【Agent Harness】从“提示词玩具”到“认知操作系统”:Gliding Horse 的 Rust 骨架与 TaoToken 配置实战
【Agent Harness】从“提示词玩具”到“认知操作系统”:Gliding Horse 的 Rust 骨架与 TaoToken 配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 16:29:34

邢台市网站建设避坑:3档预算对比与性能优化实战指南
邢台市网站建设避坑:3档预算对比与性能优化实战指南

邢台市网站建设避坑:3档预算对比与性能优化实战指南 别被那些花里胡哨的“高端定制”忽悠了,很多邢台老板一上来就被销售忽悠去做了几万块的模板站,结果上线后页面卡顿、样式错乱,客户根本留不住。 模板网站太丑且功能僵化,根本撑不起业务增长… · 2026/9/27 16:29:15

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码