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

Python代码获取JSON中price_btc最高价格结果异常求助

问题排查与修正方案

首先,你得到1.0的结果其实是完全合理的——因为你选错了字段!price_btc代表的是比特币相对于比特币的价格,这个数值永远都是1.0,不管什么时候都不会变,所以你的循环逻辑没问题,但查询的指标根本不是你想要的法币价格。

问题细节拆解

你代码里注释写的“每个元素为[数量, 价格]”是错误的,price_btc里的每个元素是[Unix时间戳, 对应时间的BTC计价价格],而BTC对BTC的价格自然是1,所以遍历后得到的最大值必然是1.0。

修正方案:获取法币计价的最高价格

如果你想获取比特币的历史最高法币价格(比如美元价格),只需把字段改成price_usd即可,修正后的代码如下:

import requests
import json

url = "https://graphs2.coinmarketcap.com/currencies/bitcoin/"
r = requests.get(url)
cont = r.json()

max_price = 0
for item in cont["price_usd"]:
    # item[0]是时间戳,item[1]是对应时间的美元价格
    if item[1] > max_price:
        max_price = item[1]

print(f"比特币历史最高美元价格: {max_price}")

更简洁的写法

你还可以用Python内置的max()函数来简化代码,不用手动写循环,效率更高:

import requests

url = "https://graphs2.coinmarketcap.com/currencies/bitcoin/"
cont = requests.get(url).json()

# 生成器表达式直接提取所有价格,取最大值
max_price = max(item[1] for item in cont["price_usd"])
print(f"比特币历史最高美元价格: {max_price}")

额外提示

如果想查看所有可用的指标字段,可以先打印cont的键:

print(cont.keys())

会输出类似:
dict_keys(['price_btc', 'price_usd', 'market_cap_by_available_supply', 'volume_usd', 'open'])
这些都是你可以查询的其他数据维度。

内容的提问来源于stack exchange,提问作者j.doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:01:35