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

Python中如何从嵌套JSON提取比特币USD当前汇率

如何从CoinDesk API的嵌套JSON中提取比特币USD价格并计算对应金额

先看你提供的CoinDesk JSON结构,比特币USD价格的嵌套路径是:bpi -> USD -> rate(带格式的字符串)或rate_float(浮点数值,适合计算)。

先修正你代码里的两个问题:

  • 参数验证部分,直接用float(sys.argv[1])会在输入非数字时抛出异常,用try-except捕获错误更健壮
  • 缺少从嵌套字典中提取价格的核心逻辑

下面是完整的修正代码:

import sys
import requests

# 验证输入参数
if len(sys.argv) == 1:
    sys.exit("missing argument!")

try:
    bitcoin_amount = float(sys.argv[1])
except ValueError:
    sys.exit("argument is not number")

# 请求API数据
response = requests.get("https://api.coindesk.com/v1/bpi/currentprice.json")
data = response.json()

# 提取USD价格(两种方式可选)
usd_rate_formatted = data['bpi']['USD']['rate']  # 带千分位逗号的字符串,例如"23,960.8828"
usd_rate_numeric = data['bpi']['USD']['rate_float']  # 浮点数值,例如23960.8828

# 计算对应金额(根据输入的比特币数量)
total_value = bitcoin_amount * usd_rate_numeric

# 打印结果
print(f"当前比特币USD价格: {usd_rate_formatted}")
print(f"{bitcoin_amount} 比特币对应USD价值: ${total_value:,.4f}")

关键说明:

  • 嵌套字典取值直接通过链式键访问:data['bpi']['USD']['rate_float'],这是提取多层嵌套JSON数据最直接的方式
  • rate_float比rate更适合计算场景,因为它已经是数值类型,无需处理千分位逗号
  • 用try-except捕获ValueError可以避免非数字输入导致的程序崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:45:48