Python, сочетающий цикл FOR и оператор IF - PullRequest
0 голосов
/ 29 мая 2019

У меня есть некоторые проблемы с этим небольшим фрагментом кода:

for key in UserInput.objects.all():
        if UserInput.category_id == 2:
            data = {}
            data['label'] = key.input_date
            data['value'] = key.input_value
            dataSource['data'].append(data)

Мне просто кажется, что он не работает.Единственное, что я хочу сделать, - это извлечь все строки из таблицы UserInput, у которых category_id равен 2, а затем выполнить четыре строки данных для каждой строки, которые будут использоваться в моей гистограмме.

Я получаю различныеошибки.Я получаю Объект типа дата не JSON-сериализуемый на data ['label'] = key.input_date.Если я заменю input_date другим (строковым) значением, моя гистограмма, кажется, будет работать, но она показывает пустую гистограмму.Я попытался сериализовать свою input_date, но при попытке сделать это я получаю еще больше ошибок.

json_data = serializers.serialize("xml", UserInput.objects.all())

и

fields = ['input_date']
    qs = UserInput.objects.all()
    json_input_data = serializers.serialize('json', qs, fields=fields)

Мои знания Python не достигают достаточного уровня, чтобы решитьэто самостоятельно.

Я бы предпочел отсортировать данные по месяцу-году вместо дня-месяца-года, но я бы понял, если это выходит за рамки моего вопроса

РЕДАКТИРОВАТЬКак многие отмечали в комментариях, я действительно использую Django.Я не упоминал об этом раньше, потому что думал, что это не будет иметь отношения.

1 Ответ

0 голосов
/ 29 мая 2019

Похоже, вы используете Django, поэтому вы должны использовать инструменты, предоставленные Django .

objects_with_category_id_2 = UserInput.objects.filter(category_id=2)
for obj in objects_with_category_id_2:
     data =  {'label': obj.input_date,
              'value': obj.input_value}
     dataSource['data'].append(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...