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

将JSON字符串转为列表后访问第三个元素报索引超出范围如何解决

问题原因

从你提供的原始输出可以看到,共有3组JSON数据:

  • 第一组的首个元素是长度为3的列表["1", 1, "hy3mRUeEcb18NLC1"],可以正常访问索引2的元素
  • 后两组的首个元素都是空列表[],长度为0,访问索引2就会触发list index out of range报错

解决方案

在访问列表索引前,先对列表长度做校验,避免空数据场景下的越界问题,参考代码如下:

import json

# 解析JSON
loaded_json = json.loads(x.task_params)
# 取首个元素
task_params = loaded_json[0]
# 校验长度后再取值
if len(task_params) >= 3:
    # 符合格式要求,输出目标值
    print(task_params[2])
else:
    # 不符合格式的场景可根据业务需要处理,比如跳过、打日志等
    pass

如果业务侧不需要处理空数据,也可以直接过滤出所有有效目标值:

# 假设all_task_params是所有x.task_params的集合
targets = []
for item in all_task_params:
    loaded = json.loads(item.task_params)[0]
    if len(loaded) >=3:
        targets.append(loaded[2])
print(targets)

运行符合格式的第一条数据时,就能正常输出你期望的hy3mRUeEcb18NLC1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 23:51:01