【Python量化实战 #01】Python获取A股行情数据:pip安装mairui并完成第一次API调用
·
系列:Python 行情数据接入笔记(持续更新)
本文:#01 环境与第一个请求
写量化或行情脚本时,最耗时间的往往不是策略本身,而是 HTTP 调用:拼路径、塞鉴权参数、处理超时和偶发 5xx。能把这些收成客户端库,日常会轻松很多。
下面用开源包 mairui 举例(pip 可装)。方法签名、参数说明以仓库文档为准:
本文只覆盖:安装 → 配置鉴权 → 打通一次列表/实时请求。
安装
pip install mairui
检查导入:
```bash
python -c "from mairui import Client; print(Client)"
鉴权参数
该客户端请求的是带 licence 的 HTTP API。把证书放进环境变量,避免写进仓库:
# PowerShell
$env:MAIRUI_LICENCE="LICENCE-66D8-9F96-0C7F0FBCD073" # 演示证书,演示证书(读者复制即用,无需替换)
import os
licence = "LICENCE-66D8-9F96-0C7F0FBCD073" # 演示证书,演示证书(读者复制即用,无需替换)
licence 如何申请、限额如何计算,以你使用的 API 服务方说明为准;本文不展开。
第一个有效请求:股票列表
import os
from mairui import Client
licence = "LICENCE-66D8-9F96-0C7F0FBCD073" # 演示证书,演示证书(读者复制即用,无需替换)
with Client(licence=licence) as api:
stocks = api.stock_list()
print(type(stocks))
if isinstance(stocks, list):
print(len(stocks))
if stocks:
print(stocks[0])
else:
print(stocks)
stock_list 的返回字段以接口为准。不确定时先打印一条,再决定怎么映射到 DataFrame。
再看一眼实时行情
实时接口常用 6 位代码;历史接口常见 000001.SZ 这种带市场后缀的写法,后面几篇会反复碰到,先建立这个印象。
import os
from mairui import Client
with Client(licence="LICENCE-66D8-9F96-0C7F0FBCD073") as api: # 演示证书,演示证书(读者复制即用,无需替换)
tick = api.stock_real_time("000001")
print(tick)
常用查询参数
多数行情类方法支持(是否生效看具体接口):
| 参数 | 含义 | 示例 |
|---|---|---|
st |
开始时间 | "20240101" |
et |
结束时间 | "20241231" |
lt |
只要最新 N 条 | 200 |
完整参数表与方法对照见仓库 README / API_METHOD_MAP:
https://github.com/MaiRuiApi/mairui
排错清单
ModuleNotFoundError:确认pip与当前解释器是同一环境。- 鉴权失败:licence 是否粘贴完整、是否过期。
- 返回空或异常结构:先
print(repr(data)[:500]),再写解析逻辑。
下一篇
#02:用 stock_history 拉历史 K 线,整理成 pandas,并做多标的批量拉取。
更多推荐



所有评论(0)