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

Python如何从requests返回的嵌套JSON中提取final_balance字段

报错原因

接口返回的JSON是两层嵌套字典结构:

  • 最外层字典的键是你传入查询的公钥地址(即代码里的pub变量,示例返回里的键为0jhke23k23k4j4k3434kk54l54)
  • final_balance、total_received这两个字段是内层字典的键,归属于对应公钥地址的余额信息对象

你直接在最外层字典查询final_balance键,外层字典不存在这个键,自然触发KeyError。另外你写的打印代码里r.json()['total_received']']末尾多了一个多余的单引号,即便key路径正确也会触发语法错误,需要删掉。

正确提取代码

先缓存解析后的JSON结果避免重复解析,先通过pub作为键取到内层的余额信息对象,再从内层对象取目标字段即可:

import requests

pub = "你的公钥地址"
url = "https://blockchain.info/balance?active="+pub
r = requests.get(url)
resp = r.json()
# 取对应地址的余额数据
addr_data = resp[pub]
final_balance = addr_data['final_balance']
total_received = addr_data['total_received']

# 打印结果
print("{} {:20} {:20}".format(pub, final_balance, total_received))
容错优化

如果存在地址格式错误、接口返回异常的场景,可以加一层判断避免程序中断:

url = "https://blockchain.info/balance?active="+pub
r = requests.get(url)
resp = r.json()
if pub in resp:
    addr_data = resp[pub]
    print("{} {:20} {:20}".format(
        pub,
        addr_data['final_balance'],
        addr_data['total_received']
    ))
else:
    print(f"地址{pub}无有效返回数据")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:39:30