获取'str'对象没有给peewee DateTimeField属性'isoformat'

问题描述 投票:1回答:1

我正在使用peewee ORM从MySQL数据库读取数据。我的数据库模型类如下

import peewee
import datetime
from collections import OrderedDict
...............

class User(peewee.Model):
...............

    created_by = CharField(null=True)
    update_by = CharField(null=True)
    updated_date = DateTimeField(default=datetime.datetime.now)
.................

    def __to_dict__(self):
        user_dict = OrderedDict([
.................
            ('created_by', self.created_by),
            ('update_by', self.update_by),
            ('updated_date', self.updated_date.isoformat())
        ])
.............

我正在以下代码中从ORM设置数据

users= User.select().distinct()
return [user.__to_dict__() for user in users]

我对某些具有updated_date字段为'0000-00-00 00:00:00'的数据行遇到以下错误:>

 user = user.__to_dict__()
File "/opt/appserver/app1/app/models/user.py", line 172, in __to_dict__
('updated_date', self.updated_date.isoformat())
AttributeError: 'str' object has no attribute 'isoformat'

为什么会出现此错误?

PS:AttributeError: 'str' object has no attribute 'isoformat'不能回答我的问题

我正在使用peewee ORM从MySQL数据库读取数据。我的数据库模型类如下:从集合中导入peewee导入日期时间import OrderedDict ......类User(peewee.Model):.......

python peewee
1个回答
1
投票

您正在使用的数据库可能包含不可解析的日期时间,或者从游标读取数据时无法正确处理的日期时间。 Peewee将自动尝试将字符串datetime值转换为适当的python datetime实例,但是如果您在表中有垃圾或格式怪异的数据,它将无法使用。

© www.soinside.com 2019 - 2024. All rights reserved.