接入教程Python 3.11 · requests 2.32
Python 获取股票最新行情:从请求到解析
用 Python requests 调用股票最新成交接口,完成 query 参数编码、响应解析、错误处理与时间戳转换,附完整可运行代码。
更新时间:
维护方:AllTick 官方技术团队
适用对象:第一次用 Python 调用行情 REST 接口的开发者
核心结论 · 30秒开发速览
用 Python 获取股票最新行情只需三步:把查询条件写成 JSON 并作为 query 参数传入,带上 API Token 发起 GET 请求,然后检查返回码并解析成交列表。下面的示例使用 AllTick 股票 trade-tick 接口,一次查询腾讯控股(700.HK)与苹果(AAPL.US)。
01
准备环境
1安装 Python 3.9 或更高版本。
2安装依赖:pip install requests
3准备 API Token,并通过环境变量 ALLTICK_API_TOKEN 提供,不要写死在代码里。
终端命令bash
pip install requestsexport ALLTICK_API_TOKEN="你的 Token"02
请求结构
AllTick 的 REST 接口把查询条件放在名为 query 的 URL 参数里,值是一段 JSON。股票接口前缀为 https://quote.alltick.co/quote-stock-b-api,最新成交路径为 /trade-tick。
| 参数 | 位置 | 说明 |
|---|---|---|
token | URL 参数 | 你的 API Token |
query | URL 参数 | JSON 字符串,包含 trace 与 data |
trace | query 内 | 请求追踪 ID,便于排查,建议每次唯一 |
data.symbol_list | query 内 | 标的列表,如 [{"code": "700.HK"}] |
03
完整代码
stock_quote.pypython
import json, os, uuidfrom datetime import datetime, timezoneimport requestsBASE_URL = "https://quote.alltick.co/quote-stock-b-api"def latest_trades(codes: list[str]) -> list[dict]: token = os.getenv("ALLTICK_API_TOKEN", "YOUR_API_TOKEN") query = { "trace": str(uuid.uuid4()), "data": {"symbol_list": [{"code": c} for c in codes]}, } resp = requests.get( f"{BASE_URL}/trade-tick", params={"token": token, "query": json.dumps(query)}, timeout=10, ) body = resp.json() if resp.content else {} if body.get("ret") != 200: raise RuntimeError(f"接口返回错误 ret={body.get('ret')} msg={body.get('msg')}") resp.raise_for_status() return body.get("data", {}).get("tick_list", [])def to_local_time(ms: str) -> str: return datetime.fromtimestamp(int(ms) / 1000, tz=timezone.utc).astimezone().isoformat()if __name__ == "__main__": for tick in latest_trades(["700.HK", "AAPL.US"]): print(tick.get("code"), tick.get("price"), to_local_time(tick.get("tick_time", "0")))04
理解响应
成功响应中 ret 为 200,data.tick_list 是每个标的的最新成交。常用字段包括 code(代码)、price(成交价,字符串)、volume(成交量)和 tick_time(毫秒时间戳,字符串)。字段完整列表以官方文档为准。
- price 以字符串返回,计算前转换为 Decimal 可避免浮点误差。
- tick_time 是 UTC 毫秒时间戳,展示前按市场时区转换。
- 休市期间返回的是最后一笔成交,时间戳不会更新。
05
常见错误
| 现象 | 可能原因 | 处理 |
|---|---|---|
KeyError: ALLTICK_API_TOKEN | 未设置环境变量 | 在当前终端 export 后再运行 |
ret 不为 200 | Token 无效、频率超限或参数错误 | 查看 msg,参考鉴权与限流排查 |
| tick_list 为空 | 代码写法错误或无权限 | 核对代码格式,如 700.HK |
| 请求超时 | 网络或代理问题 | 检查网络,保留 timeout 参数 |
规范来源与验证记录 · 2026-10-13
已根据下方一手资料核对相关端点、字段与交易所规则。
Python 示例已在 Python 3.14.0 上通过 ast.parse 语法解析;此检查不验证依赖安装、运行兼容性或网络响应。
本轮未使用真实 Token 执行 AllTick 请求,也未完成生产端到端测试。复现时请记录套餐、依赖版本、交易时段、ret/trace 与实际结果。
一手规范与规则
上线前建议复现
- 测试支持标的、未知代码、失效 Token 与超时;独立检查 HTTP 状态及 ret,日志隐藏凭证并对照请求/返回代码。
- /trade-tick 是最新快照,不提供历史逐笔;tick_time 按毫秒转 UTC,休市值标为最后已知成交。