【问题标题】:TypeError: descriptor 'isoformat' requires a 'datetime.date' object but received a 'str'TypeError:描述符“isoformat”需要一个“datetime.date”对象但收到一个“str”
【发布时间】:2019-11-12 16:01:16
【问题描述】:

我有一个包含一些列的表,其中一个主题是“日期”类型,并在 sqlalchemy 模型类中定义如下:

 ConfStartDate = db.Column(Date, nullable=False)

python 给我错误 "TypeError: 描述符 'isoformat' 需要一个 'datetime.date' 对象但收到一个 'str'" 当想要读取所有并使用这些代码序列化输出时:

papers = Paper.query.order_by(Paper.PaperID).all()
paper_schema = PaperSchema(many=True)
data = paper_schema.dump(papers)
return data 

我怎样才能传递这个错误?

【问题讨论】:

  • 我发现有些记录的 ConfStartDate 字段的值是 '0000-00-00',这个值会导致错误。如何告诉架构使用此值?
  • 这不是一个真正的约会。 IMO 最好允许该字段为空,而不是添加虚构的日期作为默认日期(我遇到过这个问题☠️,在实践中,null 比 0000-00-00 更容易处理)。

标签: python flask-sqlalchemy marshmallow flask-marshmallow


【解决方案1】:

我将默认值从 '0000-00-00-' 更改为 NULL 正如 Lucas Scott 在 cmets 中提到的那样,问题得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多