Observed since 21 Oct, 09:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
爱股数据(agushuju.com)Python SDK — tushare 亲和的 A 股数据接口
tushare 亲和的 A 股数据接口客户端:方法名与 爱股数据 端点一一对应,
stock_ 前缀端点可省略前缀调用(stock_daily → pro.daily()),从 tushare 迁移只改一行 import。
# PyPI 安装(推荐)
pip install agushuju
# DataFrame 支持(可选,未装则返回 list[dict])
pip install agushuju[dataframe]
# 源码安装(本仓库)
cd sdk/python && pip install .
在线运行(/coderunner)的环境已在服务端预装本 SDK,可直接 import agushuju。
python sdk/publish.py # 预检+构建+校验+上传+验证(内置流程见脚本头部说明)
import agushuju as agu
pro = agu.pro_api('你的APIKey') # https://www.agushuju.com/userapikey
# 股票日线(端点 stock_daily,tushare 亲和省略 stock_ 前缀)
# tushare 习惯参数开箱即用(SDK 自动翻译 ts_code / start_date / YYYYMMDD):
df = pro.daily(ts_code='000001.SZ', start_date='20260101', end_date='20260901')
# 平台原生参数完全等价:
df = pro.daily(stock_code='000001.SZ', trade_date_start='2026-01-01', trade_date_end='2026-09-01')
# 指数 / 基金 / 期货(非 stock_ 前缀端点用全名)
df = pro.index_daily(ts_code='000001.SH') # ts_code 自动按端点路由
df = pro.fund_daily(fund_code='510300.SH')
df = pro.futures_daily(futures_code='RB2601.SHF')
# 交易日历、财务指标
cal = pro.trade_cal(exchange='SSE', cal_date_start='2026-01-01', cal_date_end='2026-12-31')
fina = pro.fina_indicator(stock_code='000001.SZ', end_date_start='2026-06-30', end_date_end='2026-06-30')
# 分页
df = pro.daily(stock_code='000001.SZ', limit=100, offset=200)
# 通用原始调用(任意端点 path 直达,新端点无需 SDK 发版)
rows = pro.query('stock_moneyflow', stock_code='000001.SZ')
| 端点 path | SDK 方法 |
|---|---|
stock_daily | pro.daily()(stock_ 前缀省略) |
stock_trade_cal | pro.trade_cal() |
index_daily / fund_daily / futures_daily | pro.index_daily() 等全名 |
| 任意新端点 | pro.query('<path>', **params) |
未识别的方法名会按原样请求,服务端返回错误时抛 ApiError 并带上下文。
方法名与参数均亲和:tushare 风格参数在请求前自动翻译为平台参数,原生参数也完全支持(两者可混用,显式原生参数优先):
| tushare 写法 | SDK 自动翻译为 |
|---|---|
ts_code='000001.SZ' | 按端点路由为对应代码参数:股票 stock_code、指数 index_code、基金 fund_code、期货 futures_code、可转债 cb_code、银行间 bc_code、期权 opt_code、黄金 sge_code、外汇 fx_code、tick/持仓类 symbol 等(v0.2.1 起全族覆盖) |
start_date='20260101' / end_date='20260901' | 端点主日期列的「列名_start / 列名_end」(如 trade_date_start;财务指标端点映射到报告期 end_date_start),日期值 YYYYMMDD 自动转 YYYY-MM-DD;schema 含字面 start_date/end_date 的端点(资产负债表、现金流量表等)直通不改写(v0.2.1 起) |
period='20260630' | 不翻译(无对应语义),请用 end_date_start='2026-06-30', end_date_end='2026-06-30' |
各端点可用参数见接口文档;schema 之外的参数会被服务端静默忽略(不会报错),翻译映射基于端点 schema 快照(_PRIMARY_DATE),新端点默认回退 trade_date。
pro = agu.pro_api(
'token',
base_url='http://127.0.0.1:8181', # 默认 https://www.agushuju.com,或环境变量 AGUSHUJU_API_BASE
timeout=60, # 单次请求超时(秒)
retry=3, # 总尝试次数上限(含首次;网络错误/5xx 才重试,401/402/429 不重试)
)
返回值为 pandas.DataFrame(未安装 pandas 时为 list[dict]);df.attrs['count'] 为满足条件的总记录数(分页统计)。
ApiError,e.code 为服务端错误码ApiErrorfrom agushuju import ApiError
try:
df = pro.daily(ts_code='000001.SZ')
except ApiError as e:
print(e.code, e)
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.1 | 3 Oct 2026 | 2 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 09:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:efe74b3b7d3ca5a262e780024edac3602423fd5af8344fd784b3445e51f8b8bd