结合FOR循环和IF语句的Python

时间:2019-05-29 19:06:59

标签: python django

这小段代码有一些问题:

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的所有行,然后为要在条形图中使用的每一行执行四行数据。

我遇到各种错误。我得到一个date类型的对象,不能在data ['label'] = key.input_date上进行JSON序列化。如果将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 :(得分:0)

好像您使用的是Django,因此您应该使用tools provided by 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)