Skip to main content

Meridian Kit SDK for Python

Meridian Kit SDK 用于通过 Python 调用 Meridian Data API。SDK 使用 AK/SK 自动 完成请求签名,并提供业务函数和通用 HTTP 请求两种调用方式。

使用要求

  • Python 3.9 或更高版本(推荐使用仍处于安全维护期的 Python 3.11 或更高版本);
  • 可访问 Meridian Data API 的网络环境;
  • Meridian 提供的 API 地址、Access Key(AK)和 Secret Key(SK)。

SDK 依赖 requests>=2.31,<3。正常安装时,pip 会自动处理依赖;如果安装环境 不能访问 Python 包索引,需要由环境管理员预先准备依赖包。

Python 3.9 使用兼容旧版 macOS LibreSSL 的 urllib3>=1.26.20,<2;Python 3.10 及以上使用 Requests 正常解析出的 urllib3 2.x。urllib3 1.26 分支已停止常规维护, 因此新部署仍推荐使用 Python 3.11 或更高版本。

安装

首次安装

从 PyPI 安装:

python -m pip install meridian-kit-sdk

Windows PowerShell:

py -3 -m pip install meridian-kit-sdk

安装后可检查 SDK 版本:

python -c "import meridian_kit_sdk; print(meridian_kit_sdk.__version__)"

该命令会输出当前安装的 SDK 版本号。

配置并运行 Demo

如果使用仓库中的 demo.py,将以下三个占位值替换为 Meridian 提供的实际配置:

base_url = "https://api.ultrastiching.com"
access_key = "replace-with-your-access-key"
secret_key = "replace-with-your-secret-key"

base_url 必须是 Meridian 提供的纯 HTTP(S) API 地址。当前生产 API 地址为 https://api.ultrastiching.com,不能误用 https://www.ultrastiching.com,也不能附带 /api/wd、Query 参数或 #fragment

配置完成后执行:

python demo.py

Demo 调用 get_s_majorbiz(),成功时会输出服务端返回的 JSON 数据。示例中的股票 代码和日期可根据实际查询需求修改。

调用业务函数

SDK 业务函数通过 MeridianClient 调用。AK/SK 签名、时间戳和 Nonce 均由 SDK 自动生成:

from meridian_kit_sdk import MeridianClient

base_url = "https://api.ultrastiching.com"
access_key = "replace-with-your-access-key"
secret_key = "replace-with-your-secret-key"

with MeridianClient(
    base_url=base_url,
    access_key=access_key,
    secret_key=secret_key,
) as client:
    result = client.get_s_majorbiz(
        code=["600745", "603986"],
        trade_date=["20240705", "20240704"],
    )
    print(result)

业务函数返回服务端响应解码后的 JSON 对象。SDK 不自动转换为 pandas.DataFrame

完整业务函数、调用签名、HTTP 路径、参数和返回值说明见仓库中的 API_LIST.md。该文件可直接使用编辑器全文搜索函数名或业务说明。安装后也可以在 Python 中查看单个函数说明,例如:

help(MeridianClient.get_s_majorbiz)

通过 API 路径调用

当需要直接调用 API 路径时,可以使用 request()

with MeridianClient(
    base_url=base_url,
    access_key=access_key,
    secret_key=secret_key,
) as client:
    response = client.request(
        "POST",
        "/api/wd/get_s_majorbiz",
        json={
            "code": {"symbols": ["600745", "603986"]},
            "trade_date": {"dates": ["20240705", "20240704"]},
        },
    )
    result = response.json()

request() 返回 requests.Response。请求路径必须以单个 / 开头,不能传入完整 URL。请求体最大为 1 MiB。

错误处理

from meridian_kit_sdk import (
    MeridianApiError,
    MeridianResponseError,
    MeridianTransportError,
)

try:
    result = client.get_s_majorbiz(
        code=["600745"],
        trade_date=["20240705"],
    )
except MeridianApiError as error:
    # 服务端返回非 2xx。
    print(error.status_code, error.error_code, error.message, error.request_id)
except MeridianTransportError as error:
    # DNS、连接、TLS 或响应读取失败。
    print(error)
except MeridianResponseError as error:
    # 服务端返回 2xx,但响应不是合法 JSON。
    print(error.request_id)

SDK 默认不自动重试。网络中断时不能仅根据客户端错误判断服务端是否已经完成调用; 是否重试应结合具体业务和计费规则决定。

常见问题

提示 No module named 'meridian_kit_sdk'

确认安装 SDK 和运行程序使用的是同一个 Python 解释器,并重新执行安装命令。

返回 401 或签名校验失败

检查 AK、SK 是否完整,客户端系统时间是否准确,以及 base_url 是否为 Meridian 提供的地址。不要手工添加或覆盖 X-Meridian-* 鉴权请求头。

返回 405,且 coderequest_id 都为空

这通常表示请求没有进入 Meridian Data API 网关,而是发到了网站入口。确认 base_url 使用 https://api.ultrastiching.com,不要使用 https://www.ultrastiching.com。SDK 会自动拼接 /api/wd/...,不要把该路径加到 base_url 中。

网络连接失败

检查域名解析、代理、防火墙、TLS 证书和目标 API 地址。若所在环境必须使用代理, 请先按所在组织的网络规范配置 Python/Requests 代理。

出现 NotOpenSSLWarning

该警告通常表示旧版 macOS Python 使用 LibreSSL,同时环境中残留了 urllib3 2.x。 请重新安装当前 SDK,让 pip 按 Python 3.9 的依赖约束安装兼容版本:

python -m pip install --upgrade --force-reinstall meridian-kit-sdk

接口返回不可用

确认当前凭证是否有权调用目标接口,以及接口是否已对当前账号发布。如需定位,向 Meridian 支持人员提供异常中的 request_id,不要提供 Secret Key。

升级与卸载

升级到新版本

使用 --upgrade 安装最新版本:

python -m pip install --upgrade meridian-kit-sdk

重新安装同一版本

如果需要重新安装当前版本,使用 --force-reinstall 保证替换本地已经安装的内容:

python -m pip install --force-reinstall meridian-kit-sdk

正常发布时,每次修改交付包内容都应提升版本号,并使用 --upgrade 安装新版本; 不应长期通过同一版本号反复交付不同内容。

卸载

卸载 SDK:

python -m pip uninstall meridian-kit-sdk

凭证安全

  • 不要将真实 SK 提交到 Git、粘贴到工单或发送到群聊;
  • 不要在日志、异常消息或截图中输出完整 AK/SK;
  • 不要把 SK 放入 URL、Query 参数或自定义请求头;
  • 如果凭证疑似泄露,应立即联系 Meridian 管理员撤销并重新生成。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meridian_kit_sdk-0.1.0.tar.gz (159.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meridian_kit_sdk-0.1.0-py3-none-any.whl (82.1 kB view details)

Uploaded Python 3

File details

Details for the file meridian_kit_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: meridian_kit_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 159.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for meridian_kit_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9f9a4247e9a7908a51e803120344ee5424be7eae47351da4fab4c944a615dcce
MD5 ba8c949848ff0b43bec17959eba0e84a
BLAKE2b-256 0cc830f188f70f4f0ee6179c4b2d49883620a94044c94b72c4ea5b0a04cec1ca

See more details on using hashes here.

File details

Details for the file meridian_kit_sdk-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for meridian_kit_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 673fc3e5e38085cc5c2ace0eae21f1ad9612b6f638e5fbac6e2cae2bd06a2995
MD5 a146be100735e2aa8d739411e54a70f7
BLAKE2b-256 e3dceffdd4d58b7ed6ce5a994f922ec976c741ea67db0b2c6f5731a7a5d52ca7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page