coinmarketcap-api 完整指南:用 Python 轻松调用数字货币行情接口

·

引言

coinmarketcap-api 是一套开源的 Python 包装库,旨在用最简洁的语法,把 CoinMarketCap 公开 API私有 API 的能力全部开放给开发者。它支持 实时全球市值币种详情交易所数据 等关键指标,并且兼容 Python 2.7 与 3.6+。

关键词:coinmarketcap-api、数字货币数据、Python 行情库、交易所接口、实时市值


安装

源码安装

git clone https://github.com/shyuntech/coinmarketcap-api
cd coinmarketcap-api
python setup.py install

一键 PyPI

pip install coinmarketcap-api

使用方式总览

  1. 创建实例

    from coinmarketcap import CoinMarketCap
    market = CoinMarketCap()
  2. 根据需求调用以下 7 大核心方法:stats、coin_list、coin_ticker_detail、coin_ticker_list、coin_price、coin_market_price、exchange_list

功能详解与示例

1. 全球市值快照(stats)

resp = market.stats(convert="BTC")
print(resp["data"]["bitcoin_percentage_of_market_cap"])
# 输出示例:42.11

👉 查看如何一句话获取当前 BTC 占有率并进行可视化


2. 币种总览列表(coin_list)

data = market.coin_list()
for coin in data["data"]:
    print(coin["symbol"], coin["id"])
# BTC 1
# ETH 1027

3. 单币深度信息(coin_ticker_detail)

btc = market.coin_ticker_detail(1, convert="CNY")
print("价格:", btc["data"]["quotes"]["CNY"]["price"])
print("7日涨跌:", btc["data"]["quotes"]["CNY"]["percent_change_7d"], "%")

4. 分页行情列表(coin_ticker_list)

top20 = market.coin_ticker_list(limit=20, sort="rank", convert="EUR")
 ranked = sorted(top20["data"].values(), key=lambda x: x["rank"])

5. 币种价格时间序列(coin_price)

from datetime import datetime
start = int(datetime(2023, 1, 1).timestamp() * 1000)
end   = int(datetime(2023, 12, 31).timestamp() * 1000)

series = market.coin_price("eos", start=start, end=end)
price_usd = [i[1] for i in series["price_usd"]]

6. 交易所深度摆盘(coin_market_price)

通过网页解析全球 超 200 家交易所的实时交易对深度,字段包含 price、volume、percent 等。

depth = market.coin_market_price("xrp")
okex = [d for d in depth["data"] if d["exchange"] == "OKEx"][0]
print(okex["price"]["price_usd"])

👉 追踪顶级交易所深度,把握流动性脉搏


7. 交易所榜单(exchange_list)

一次性获取所有交易所 排名、LOGO、链接,可做排行榜、数据仪表盘。

exchanges = market.exchange_list()
top3 = exchanges["data"][:3]
print([e["display_name"] for e in top3])
# ['FCoin', 'BitMEX', 'Binance']

FAQ(常见疑问)

Q1:如何切换 requests 超时时间?
A:在实例化时传自定义 session:CoinMarketCap(request_timeout=10)

Q2:免费额度是多少?
A:调用公开接口时对频率没有强制限额,但建议每秒 ≤ 1 次,防止被临时封 IP。

Q3:支持 WebSocket 实时订阅吗?
A:目前库仅封装 RESTful 接口,实时需求可搭配 自建的 Ticker + WebSocket 桥接服务。

Q4:数据更新频率?
A:官方公开 API 每 5 分钟刷新一次,coin_price 私有接口每 1 分钟刷新。

Q5:可以筛选稳定币吗?
A:在 coin_ticker_list 后过滤 "stablecoin" 类型即可,需额外跑一个币种元数据表。

Q6:遇到 HTTP 521 如何解决?
A:这是 Cloudflare 高频触发,建议增加重试策略或使用代理池轮询。


结语

借助 coinmarketcap-api,你只需十几行代码就能搭建一个 实时数字货币数据管道。无论是做量化策略、行情网站,还是资产仪表盘,都能显著节省对接 CoinMarketCap 的重复体力劳动。立即 pip 安装,开启你的区块链数据之旅!