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

如何使用变量索引读取多个JSON数组中的特定值

解决JSON数组索引变量访问问题

你的代码核心问题是把对象访问路径拼成了字符串,而不是直接用变量作为索引去访问实际的JSON对象,所以输出的只是字符串文本,不是你要的数组值。另外原代码里整数和字符串拼接还会触发类型错误,下面给你修正后的写法:

正确实现方式

直接用变量作为索引访问数组,不需要拼接字符串:

方法1:遍历列表(更简洁推荐)

# 先取出monitors列表,避免重复写长路径
monitors = obj['data']['monitors']
print("Active Lines:", len(monitors))

# 遍历每个monitor,同时获取索引
for idx, monitor in enumerate(monitors):
    # 直接用变量访问对应位置的name
    line_name = monitor['lines'][0]['name']
    print(f"{idx+1} Line: {line_name}")

方法2:对应你原有的while循环逻辑

line_count = len(obj['data']['monitors'])
print("Active Lines:", line_count)

# 循环从最后一个索引往前遍历
while line_count > 0:
    line_count -= 1
    # 直接用line_count作为索引访问数组
    line_name = obj['data']['monitors'][line_count]['lines'][0]['name']
    print(f"{line_count+1} Line: {line_name}")

为什么原代码不行?

你之前写的LineNb = "obj['data']['monitors'][" + LineCount + "]['lines'][0]['name']"只是把访问路径拼成了一个字符串,不是对obj的实际访问操作。json.dumps(LineNb)也只是把这个字符串转成JSON格式的文本,自然拿不到数组里的真实值。而且LineCount是整数,直接和字符串拼接还会触发TypeError类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 22:38:26