访问JSON API响应嵌套数据获取calls列表recipient重复问题排查
问题原因分析
- 循环逻辑错误:你通过
for i in calls遍历calls列表时,循环变量i已经代表当前迭代的单条调用记录,但你没有使用该变量,反而固定通过calls[2]['recipient']读取列表固定索引位置的元素,所以每次循环输出的都是同一个值。 - 索引用法存在潜在问题:Python列表为0起始索引,你给出的示例数据中calls列表仅包含2条记录,对应合法索引为0、1,写
calls[2]会直接触发数组越界报错。如果你的代码实际运行没有报错,仅说明你真实环境的calls列表长度≥3,但依然无法满足遍历所有调用记录的需求。
正确实现代码
直接遍历列表元素即可,无需手动指定索引:
data = json_response['data'] calls = data['0x6c3e3fb3e1066132ae54b1049c7f1ffb9c875404']['calls'] for call in calls: recipient = call['recipient'] print(recipient)
如果确实需要通过索引访问,写法如下:
for i in range(len(calls)): recipient = calls[i]['recipient'] print(recipient)
内容的提问来源于stack exchange,提问作者BlackElefant
相关产品推荐
相关产品推荐

