"IndexError at / list index out of range"出现空列表时如何解决
How to solve "IndexError at / list index out of range" when there is an empty list
我想知道当 API "leverage_buy" 中有一个空列表时,在 Django 中 return null 最简单的方法是什么:[],:
我的views.py
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'],
leverage_buy = i['leverage_buy'][0],
)
kraken_data.save()
我的models.py
from django.db import models
class Kraken(models.Model):
altname = models.CharField(max_length=50, blank = True, null = True)
leverage_buy = models.IntegerField(blank=True, null=True)
邮递员回复
{
"error": [],
"result": {
"1INCHEUR": {
"altname": "1INCHEUR",
"leverage_buy": [],
我在这里研究并尝试了很多类似的案例,但是none有一个API空列表的例子。
您可以使用三元运算符:
for i in data['result'].values():
kraken_data = Kraken.objects.create(
altname = i['altname'],
leverage_buy = <strong>i['leverage_buy'][0] if i['leverage_buy'] else None</strong>
)
我想知道当 API "leverage_buy" 中有一个空列表时,在 Django 中 return null 最简单的方法是什么:[],:
我的views.py
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'],
leverage_buy = i['leverage_buy'][0],
)
kraken_data.save()
我的models.py
from django.db import models
class Kraken(models.Model):
altname = models.CharField(max_length=50, blank = True, null = True)
leverage_buy = models.IntegerField(blank=True, null=True)
邮递员回复
{
"error": [],
"result": {
"1INCHEUR": {
"altname": "1INCHEUR",
"leverage_buy": [],
我在这里研究并尝试了很多类似的案例,但是none有一个API空列表的例子。
您可以使用三元运算符:
for i in data['result'].values():
kraken_data = Kraken.objects.create(
altname = i['altname'],
leverage_buy = <strong>i['leverage_buy'][0] if i['leverage_buy'] else None</strong>
)