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

Python处理CoinMarketCap接口数据时如何访问指定slug对应的id

问题说明

你当前的代码将接口返回的原始slug字段(如bitcoin、litecoin这类唯一标识字符串)直接覆盖为id数值,丢失了用于查询的原始slug值,无法实现通过slug获取对应id的需求。

实现方案

无需修改接口返回的原始数据,直接构造slug到id的映射字典即可,查询效率更高,实现代码如下:

import os
from requests import Session
import json

CMC_API_KEY = os.environ.get('CMC')

parameters = {
    'start': 1,
    'limit': 1500
}

headers = {
    'Accepts': 'application/json',
    'X-CMC_PRO_API_KEY': CMC_API_KEY
}
session = Session()
session.headers.update(headers)
url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/map'
response = session.get(url, params=parameters)
data = json.loads(response.text)['data']

# 构造slug到id的映射字典
slug_to_id = {item['slug']: item['id'] for item in data}

查询示例

# 查询比特币(slug为bitcoin)对应的id
btc_id = slug_to_id.get('bitcoin')
print(btc_id) # 输出结果为1

# 查询不存在的slug时可指定默认返回值,避免抛出异常
unknown_id = slug_to_id.get('not_exists_slug', '未找到对应加密货币')
print(unknown_id) # 输出未找到对应加密货币

补充说明

  • 直接通过slug_to_id['目标slug']即可获取对应id,查询时间复杂度为O(1),远高于遍历列表查询的效率
  • 若你确实需要保留修改slug为id的操作,可在构造映射字典后再执行对应的覆盖逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:18:01