如何在Python中动态获取CoinMarketCap API返回JSON的加密货币ID?
解决CoinMarketCap API动态获取多币种ID的问题
核心逻辑是:CoinMarketCap API返回的data字段是一个以币种符号为键的字典,不管返回1个还是多个币种,直接遍历这个字典的所有值,提取每个值里的id字段即可,无需硬编码币种符号。
代码实现示例
首先模拟API返回的多币种响应数据(和真实接口返回结构一致):
# 模拟CoinMarketCap API的响应结果 api_response = { "status": { "timestamp": "2024-05-20T12:34:56Z", "error_code": 0 }, "data": { "BTC": {"id": 1, "name": "Bitcoin", "symbol": "BTC"}, "ETH": {"id": 1027, "name": "Ethereum", "symbol": "ETH"} } }
方式1:直接提取所有ID并按要求格式输出
# 动态获取所有币种的ID crypto_ids = [item["id"] for item in api_response["data"].values()] # 输出为逗号分隔的字符串 print(", ".join(map(str, crypto_ids))) # 输出结果:1, 1027
方式2:同时获取币种符号和对应的ID
如果需要关联符号和ID,可以遍历字典的键值对:
for symbol, crypto_info in api_response["data"].items(): print(f"{symbol} 对应的ID是:{crypto_info['id']}") # 输出: # BTC 对应的ID是:1 # ETH 对应的ID是:1027
说明
不管API返回1个还是N个币种数据,这个逻辑都能适配,因为它不依赖具体的币种符号(比如硬编码'BTC'),而是直接遍历data下的所有条目,完全动态处理。
内容的提问来源于stack exchange,提问作者John C
相关产品推荐
相关产品推荐

