QVeris
QVERIS · PYTHON 接入

Python 股票 API:通过 QVeris 获取报价

使用 Python 连接 QVeris 股票数据工具,检查参数、发起请求并保存 JSON 响应,从注册试用积分开始验证接入。

发布日期: · QVeris团队制作

发起第一个 Python 请求——Python 股票 API:通过 QVeris 获取报价的场景配图,非实时数据结果。
QVERIS · 数据应用
发起第一个 Python 请求

检查、调用、保存。

把 Python 项目接入股票数据

QVeris 为 Python 应用提供发现和调用股票数据工具的入口。可以先查询一只股票,保存 JSON 响应,再根据返回字段生成结果表。相同流程后续可用于 Notebook、定时研究脚本或自选股看板的后端。

这里以 QVeris 中的Finnhub 股票报价能力为例:检查路径、提交一个代码、保留响应供核验。直接请求数据无需先选择模型,也不需要先搭建完整的 AI Agent。

QVeris 文档也提供 SDK 接入路径。首次采用 HTTP 请求,可以集中看到鉴权方式、参数对象和返回结构,方便排查问题。

准备密钥与 Python 环境

在 QVeris 账户中创建 API Key,通过进程环境变量 QVERIS_API_KEY 提供给脚本。把密钥保存在本地环境或服务端密钥管理中。在项目虚拟环境安装 requests,再把示例保存为 stock_quote.py。

bash
python -m pip install requests
python stock_quote.py AAPL

脚本在运行时读取密钥,示例本身不包含凭据。请在服务端或自己的电脑运行,不要把账户 API Key 放进公开浏览器页面。执行前查看工具详情与当前调用价格,数据执行可能消耗积分。

先检查参数,再发起一次请求

下面的示例会确认所选路径仍支持字符串类型的 symbol,且没有新增必填字段,然后才发起请求。脚本保存完整执行结果,不假设各供应商都返回相同的报价对象。展开代码可复制完整脚本。

展开完整 Python 示例
python
"""Inspect and execute one stock quote route. Running this may use QVeris credits."""
import json
import os
import sys
from pathlib import Path
import requests

BASE = "https://qveris.ai/api/v1"
TOOL = "finnhub_io_api.stock.quote"

def post(path, body, key, query=None):
    response = requests.post(
        BASE + path,
        headers={"Authorization": "Bearer " + key},
        params=query,
        json=body,
        timeout=5,
    )
    response.raise_for_status()
    payload = response.json()
    if not isinstance(payload, dict) or payload.get("success") is False:
        raise ValueError("QVeris returned an unsuccessful or unexpected response")
    return payload

def main():
    key = os.environ["QVERIS_API_KEY"]
    symbol = sys.argv[1] if len(sys.argv) > 1 else "AAPL"
    inspected = post("/tools/by-ids", {"tool_ids": [TOOL]}, key)
    match = next((t for t in inspected.get("results", []) if t.get("tool_id") == TOOL), None)
    if not match:
        raise ValueError("Selected route is unavailable; inspect another route")
    fields = match.get("params") or []
    if not any(p.get("name") == "symbol" and p.get("type") == "string" for p in fields):
        raise ValueError("The symbol contract changed; review the tool before calling")
    if any(p.get("required") and p.get("name") != "symbol" for p in fields):
        raise ValueError("New required parameters need review")
    result = post("/tools/execute", {
        "parameters": {"symbol": symbol}, "max_response_size": 20480
    }, key, {"tool_id": TOOL})
    if result.get("success") is not True or result.get("result") is None:
        raise ValueError("Execution did not return a result")
    Path("quote-response.json").write_text(json.dumps(result, indent=2), encoding="utf-8")
    print("Saved quote-response.json. Validate provider data and timestamps before display.")

if __name__ == "__main__":
    try:
        main()
    except (KeyError, ValueError, OSError, requests.RequestException) as error:
        # Avoid printing authorization headers or complete provider responses.
        raise SystemExit("Request stopped: " + type(error).__name__) from None

示例使用 Requests 的五秒超时配置,遇到 HTTP、JSON 或执行错误时停止。Requests 的超时约束连接与读取等待,不是严格的总运行时长保证;参见Requests 超时说明。因此工具可用但响应较慢时,示例也可能超时。

自动化之前,先读懂保存的响应

打开 quote-response.json,在执行结果中定位供应商数据。确认上游响应有效、标的匹配,而且包含有意义的观察时间。外层成功标志只能描述调用过程,不能单独证明供应商返回了可用行情。

空对象不能被转换成零美元股票,截断响应也不能当作完整数据集。股票 API JSON 文章说明了如何区分执行元信息与应用自己的标准化结构。

开发过程中应保留原始响应文件。派生表格方便用户阅读,原对象则有助于定位字段改名、币种缺失或上游错误格式变化。

按实际需求扩展下一个数据任务

单代码请求验证成功后,再加入小规模股票列表,并分别处理每个结果。对适合重试的临时故障采用有限次数重试,不进行无间隔循环。执行超时可能意味着结果未知,在重复付费调用前,应先查看可用的执行记录或用量记录。

需要日期序列时选择历史股票数据能力,需要名称和市场身份时选择公司资料能力。每条新路径都要检查参数,报价中的 symbol 并不是所有股票工具通用的参数定义。标的列表、日期范围和运行频率由应用配置管理。

常见问题

这段脚本是实测行情报告吗?

不是。这是基于已检查工具参数编写的接入示例,实际数据、可用性和费用取决于本次执行及账户权限。

运行这个示例需要大模型密钥吗?

不需要。这里直接调用 QVeris 数据接口;只有另外搭建模型驱动的 Agent 流程时,才涉及模型密钥。

检查报价工具并生成 Python 接入清单

点击后将打开已预填的 QVeris 任务,先检查 AAPL 报价参数,并在可调用时获取一次结果。输出会包含返回字段、来源时间,以及环境变量、错误处理和响应保存清单,不会要求输出 API Key。

请用 QVeris 检查 AAPL 股票报价工具,说明当前参数定义;可调用时获取一次报价,列出来源时间和实际返回字段。补充简短的 Python 接入清单,包含环境变量、HTTP 错误、上游错误及响应保存方式。不要输出任何 API Key,请用中文回答。

Python 报价之后:更多行情接入方式

Python 股票 API:通过 QVeris 获取报价 | QVeris Guides