You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历Coin Market Cap API获取前5000币种数据并保存为CSV?

解决CoinMarketCap API获取前5000币种数据并保存为CSV的问题

你的代码存在几个关键问题,导致无法实现需求,以下是修正后的完整方案:

原代码问题说明

  • 接口选择错误:quotes/latest仅用于查询指定币种的报价,无法批量获取排名靠前的币种,应使用cryptocurrency/listings/latest接口。
  • 参数配置无效:slug参数不能填**,且该接口无需指定单个币种,而是通过分页参数批量获取数据。
  • 响应处理错误:直接遍历response对象是错误的,需先将响应解析为JSON格式后处理数据。
  • 缺少分页逻辑:接口默认每页返回100条数据,获取5000条需循环请求50页。
  • 缺少CSV保存逻辑:没有将收集的数据写入文件的代码。

完整实现代码

import requests
import pandas as pd

# 替换为你的CoinMarketCap API密钥
API_KEY = "你的API密钥"
# 用于获取排名币种列表的API接口
API_URL = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest"

headers = {
    "Accepts": "application/json",
    "X-CMC_PRO_API_KEY": API_KEY
}

# 存储所有币种数据的列表
all_crypto_data = []

# 分页获取前5000条数据(每页100条,共50页)
for page_num in range(1, 51):
    params = {
        "start": (page_num - 1) * 100 + 1,  # 每页起始位置
        "limit": 100,                      # 每页条数
        "convert": "USD"                   # 转换为美元计价
    }

    # 发送API请求
    response = requests.get(API_URL, headers=headers, params=params)
    response_data = response.json()

    # 检查请求是否成功
    if response_data["status"]["error_code"] != 0:
        print(f"第{page_num}页请求失败: {response_data['status']['error_message']}")
        continue

    # 提取需要的字段并添加到列表
    for coin in response_data["data"]:
        all_crypto_data.append({
            "slug": coin["slug"],
            "price_usd": coin["quote"]["USD"]["price"],
            "volume_24h_usd": coin["quote"]["USD"]["volume_24h"],
            "volume_change_24h_percent": coin["quote"]["USD"]["volume_change_24h"]
        })

    print(f"已完成第{page_num}页数据获取")

# 将数据转换为DataFrame并保存为CSV
crypto_df = pd.DataFrame(all_crypto_data)
crypto_df.to_csv("top_5000_cryptos.csv", index=False)
print("数据已成功保存到top_5000_cryptos.csv")

代码关键点解释

  • 接口选择:listings/latest接口专门用于获取按市值排名的币种列表,支持分页和法币转换参数。
  • 分页处理:通过start和limit参数控制每页数据范围,循环50次即可获取5000条数据。
  • 字段提取:从响应的data数组中提取你需要的slug、美元价格、24小时成交量及成交量变化百分比。
  • 错误处理:检查响应的错误码,避免因请求失败导致程序中断。
  • CSV保存:使用pandas将数据转换为DataFrame后保存为CSV,方便后续直接读取进行数据分析。

内容的提问来源于stack exchange,提问作者BGX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:45:25