本教程手把手教你用 CoinMarketCap API 与 Python 获取比特币、以太坊等加密货币的最新价格、历史行情、全球市值及数据分类,并示范如何把结果快速导出到 Excel 与 Google Sheets,助你零门槛搭建专属行情监控面板。
👉 随学随做:用 10 分钟跑通第一条 API 请求,从此告别手动查价!
为什么选择 CoinMarketCap API?
| 优势 | 细节 | | — | — | | 免费套餐 | 基本行情点数充足,适合个人与小团队 | | 覆盖面广 | 支持 20,000+ 代币与 500+ 交易所 | | 实时更新 | 分钟级刷新,延迟低至毫秒 | | 场景丰富 | 价格提醒、量化回测、组合分析皆可 |
准备工作:3 步获得 API Key
- 访问 CoinMarketCap 开发者入口,注册免费账户
- 邮箱验证后登录控制台,复制
API Key - 在终端设置变量:
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 信号追踪面板,让你的加密资产尽在掌控。祝你挖掘数据金矿!