Python/Django - Лучший способ избежать ошибки UnboundLocalError, когда список пуст

Я использую список для получения данных из API.

Этот список создается с помощью следующего кода:

mylist = []
    for batch in stream:
        for row in batch.results:

            data = {}         
            data["color"] = row.color
            data["count"] = row.count
            mylist.append(data)

И в итоге список выглядит примерно так:

mylist = [{'color':'red','count':5}, {'color':'blue','count':7}]

Затем я отправляю его в шаблон Django, используя что-то вроде этого:

context = {
'mylist' : mylist,
'data' : data,
}
return render(request, 'page.html', context)

В большинстве случаев это работает нормально. Но иногда нет данных для отправки, поэтому API ничего не отправляет, и mylist пуст.

Когда это происходит, я получаю ошибку:

UnboundLocalError at /page
local variable 'data' referenced before assignment

Я "решил" это с помощью следующего кода:

if not mylist:
        data = {"error": "no data"}

Это устраняет ошибку, но кажется очень "халтурным". Мне не нужна эта информация в моем списке. Если нет данных, я бы предпочел, чтобы список был пустым (чтобы я мог сделать "if" для проверки, пуст он или нет, и тому подобное).

Есть ли лучшее решение?

Спасибо!

(я изучаю Python и Django, так что, возможно, большая часть моего кода может быть улучшена, а не только ошибка).

Вернуться на верх