TypeError:过滤日期时间后无法调用“模块”对象

时间:2019-08-14 07:48:12

标签: python django pandas django-queryset django-orm

我想编写一个django-orm来过滤datetime字段和其他一些字段。然后将其转换为pandas数据框。 该代码可以正常工作:

order_order_df = 
pd.DataFrame(list(Order.objects.filter(canceled=False, 
order_time__isnull=False).values()))                                   

但是此代码不起作用:

order_order_df = 
pd.DataFrame(list(Order.objects.filter(canceled=False, 
order_time__isnull=False, 
order_time__gte=datetime(2018, 10, 1)).values()))

为什么会这样?如何过滤日期时间并将其正确转换为熊猫? 注意: 我知道在转换为熊猫后可以对其进行正确过滤,但我需要在此处通过queryset来完成。

2 个答案:

答案 0 :(得分:2)

我想您已经像这样导入了datetime

import datetime

因此您无法调用datetime() –您将需要datetime.datetime

order_order_df = pd.DataFrame(
    list(
        Order.objects.filter(
            canceled=False,
            order_time__isnull=False,
            order_time__gte=datetime.datetime(2018, 10, 1),
        ).values()
    )
)

答案 1 :(得分:0)

为防止这些错误:

  

TypeError:过滤日期时间后无法调用“模块”对象   AttributeError:只能将.str访问器与字符串一起使用

使用此代码:

order_order_df = pd.DataFrame(
    list(
        Order.objects.filter(
            canceled=False,
            order_time__isnull=False,
            ).exclude(
            order_time__lte=datetime.datetime(2018, 10, 1)
        ).values()
    )
)