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

如何解决Django调用API遇空列表报list index out of range错误

问题处理方案

你遇到的报错本质是空列表无下标为0的元素,最简单的处理方式是在取值时加非空判断,空列表时直接返回None即可,完全适配你模型中leverage_buy字段null=True的配置。

代码修改(views.py)

只需要调整leverage_buy的赋值逻辑即可,修改后代码如下:

from django.shortcuts import render
from meal_app.models import Kraken
import requests

def get_krakens(request):
    all_krakens = {}
    url ='https://api.kraken.com/0/public/AssetPairs' 
    response = requests.get(url)
    data = response.json()

    for i in data['result'].values():
        kraken_data = Kraken(
            altname = i['altname'], 
            # 新增非空判断,空列表时赋值None
            leverage_buy = i['leverage_buy'][0] if i['leverage_buy'] else None,
            )
        kraken_data.save()

可选更简洁写法

也可以用Python内置的next()方法实现相同效果,代码更短:

leverage_buy = next(iter(i['leverage_buy']), None)

逻辑说明

  • 当leverage_buy返回非空列表时,正常取首元素赋值
  • 当leverage_buy返回空列表[]时,直接赋值None存入数据库,不会触发IndexError报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:24:03