CoinMarketCap API Python 教程:实时加密货币数据分析入门

Posted by PDQ881 加密视角 on September 5, 2025

本教程手把手教你用 CoinMarketCap APIPython 获取比特币、以太坊等加密货币的最新价格、历史行情、全球市值及数据分类,并示范如何把结果快速导出到 ExcelGoogle Sheets,助你零门槛搭建专属行情监控面板。

👉 随学随做:用 10 分钟跑通第一条 API 请求,从此告别手动查价!

为什么选择 CoinMarketCap API?

| 优势 | 细节 | | — | — | | 免费套餐 | 基本行情点数充足,适合个人与小团队 | | 覆盖面广 | 支持 20,000+ 代币与 500+ 交易所 | | 实时更新 | 分钟级刷新,延迟低至毫秒 | | 场景丰富 | 价格提醒、量化回测、组合分析皆可 |

👉 快速领取免费的开发者 Key,马上体验海量数据流

准备工作:3 步获得 API Key

  1. 访问 CoinMarketCap 开发者入口,注册免费账户
  2. 邮箱验证后登录控制台,复制 API Key
  3. 在终端设置变量:export CMC_KEY=你的密钥

使用 python-coinmarketcap 库的最佳实践

1. 安装与初始化

pip install python-coinmarketcap pandas
import os
import coinmarketcapapi, pandas as pd
cmc = coinmarketcapapi.CoinMarketCapAPI(os.environ['CMC_KEY'])

2. 获取币种信息

info = cmc.cryptocurrency_info(symbol='BTC,ETH')
df = pd.DataFrame.from_dict(info.data, orient='index')
print(df[['name', 'symbol', 'category', 'date_launched']])

输出示范:

        name symbol   category date_launched
BTC   Bitcoin    BTC  currency    2013-04-28
ETH  Ethereum    ETH  platform    2015-08-07

3. 拉取最新报价

quotes = cmc.cryptocurrency_quotes_latest(symbol='BTC,ETH')
df = pd.json_normalize(quotes.data.values())
print(df[['symbol', 'quote.USD.price', 'quote.USD.percent_change_24h']])

4. 取得全局市值快照

global_metrics = cmc.globalmetrics_quotes_latest()
total_market_cap = global_metrics.data['quote']['USD']['total_market_cap']
print(f"全球加密总市值: ${total_market_cap:,.0f}")

导出数据:一键到 Excel / Google Sheets

Excel

df.to_excel('crypto_snapshot.xlsx', index=False)

Google Sheets

!pip install gspread df2gspread oauth2client
import gspread, df2gspread as d2g
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds',
         'https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('google_key.json', scope)
gc = gspread.authorize(creds)

d2g.upload(df, 'Google 表ID', 'Sheet1', credentials=creds)

FAQ:常见问题速查

Q1:免费套餐足够用吗?
A:每天 10,000 次调用,基本行情绰绰有余;实时交易决策需付费升级。

Q2:需要科学上网吗?
A:直接访问即可,无需额外工具。

Q3:返回的报价和交易所实际价差多少?
A:API 收集各交易所加权均价,极端波动时通常与头部交易所现货价差异 ≤ 1%。

Q4:如何监控额度超限?
A:调用 cmc.key_info() 可查看本月剩余可调用次数及重置时间戳。

Q5:可以批量取历史 K 线吗?
A:需 Standard 及以上套餐,再调用 cryptocurrency_quotes_historical()

实战场景:用 50 行代码写个价格提醒机器人

import time, smtplib
threshold = 3000  # ETH 心理价位

def alert(price):
    with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
        smtp.starttls()
        smtp.login('you@gmail.com', 'secret')
        smtp.sendmail('from', 'to', f'Subject:ETH Alert!\n\nPrice hit ${price}')

while True:
    eth_price = float(
        cmc.cryptocurrency_quotes_latest(symbol='ETH')
        .data['ETH']['quote']['USD']['price'])
    if eth_price >= threshold:
        alert(eth_price)
        break
    time.sleep(300)  # 5 分钟检查一次

结语

只需几分钟,你就掌握了 CoinMarketCap API 调用、Python 分析、数据可视化 全链路技能。接下来可将策略接入交易机器人、做定投监控箱线图,甚至开发链上 Alpha 信号追踪面板,让你的加密资产尽在掌控。祝你挖掘数据金矿!