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

Python3.6解析含嵌套字典的JSON响应遇阻,请求技术帮助

解决JSON解析中字符串索引错误的问题

看起来你遇到了典型的JSON字符串未解析就直接索引的问题!先别崩溃,咱们一步步来解决。

首先,你的错误TypeError: string indices must be integers已经很明确了:你当前的response变量其实是一个字符串,而不是已经解析好的Python字典对象。这也就是为什么你用response[0]会返回{(字符串的第一个字符),用response['info']会报错——字符串只能用整数索引,不能用键名。

咱们先确认你的原始JSON内容:

{ "info": { "funds": { "asset": { "net": "12516.000", "total": "0" }, "borrow": { "btc": "0", "cny": "0", "ltc": "0" }, "free": { "btc": "0", "cny": "0", "ltc": "0", "eth": "0" }, "freezed": { "btc": "0", "cny": "0", "ltc": "0", "eth": "0" }, "union_fund": { "btc": "0", "ltc": "0" } } }, "result": true }

你想要获取net字段的值,但直接对字符串进行字典式索引操作肯定行不通。正确的步骤应该是:

  1. 先将JSON字符串解析为Python字典
    你需要使用Python的json模块,调用json.loads()方法把字符串转成可操作的字典。

  2. 再从字典中取值

给你一个完整的可行代码示例:

import json

# 假设你的response是这个JSON字符串
response = '''{ "info": { "funds": { "asset": { "net": "12516.000", "total": "0" }, "borrow": { "btc": "0", "cny": "0", "ltc": "0" }, "free": { "btc": "0", "cny": "0", "ltc": "0", "eth": "0" }, "freezed": { "btc": "0", "cny": "0", "ltc": "0", "eth": "0" }, "union_fund": { "btc": "0", "ltc": "0" } } }, "result": true }'''

# 解析字符串为字典
response_dict = json.loads(response)

# 现在就可以正确获取net的值了
funds = response_dict['info']['funds']['asset']['net']
print(funds)  # 输出:12516.000

如果你的response是来自API请求的返回(比如用requests库),其实可以直接用response.json()方法来解析,不需要手动用json.loads(),比如:

import requests

# 假设这是你的API请求
response = requests.get('your-api-url-here')
response_dict = response.json()
funds = response_dict['info']['funds']['asset']['net']

总结一下:你的核心问题就是没有把JSON字符串转换成Python的字典对象,直接对字符串用了字典的索引方式,导致报错。只要先完成解析步骤,就能顺利拿到你想要的net值啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:39:24