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, так что, возможно, большая часть моего кода может быть улучшена, а не только ошибка).