【问题标题】:How do I define a datetime field in a python dataclass?如何在 python 数据类中定义日期时间字段?
【发布时间】:2018-10-26 09:04:26
【问题描述】:

尝试正确获取 Python 3.7 新数据类的语法。

如果我想在我的数据类中包含一个日期时间值,

import datetime
from dataclasses import dataclass

@dataclass
class MyExampleWithDateTime:
    mystring: str
    myint: int
    mydatetime: ???

我应该写什么???对于日期时间字段?

【问题讨论】:

    标签: python python-3.x python-dataclasses


    【解决方案1】:

    像这样:

    @dataclass
    class MyExampleWithDateTime:
        mystring: str
        myint: int
        mydatetime: datetime.datetime
    

    【讨论】:

    • 除了创建客户编码器之外,是否有任何有用的技巧可以让这个 json 序列化?参考错误消息:TypeError: Object of type datetime is not JSON serializable,其结果来自:ex = MyExampleWithDateTime('a', 1, datetime.datetime.now())。然后:json.dumps(asdict(ex)) 结果:`
    • JSON 没有 datetime.datetime 对象。您可以将mydatetime 的组件存储为数字(例如mydt_yrmydt_momydt_d 等),然后定义@property mydatetime 来组合单位,并使用setter 来拆分单位.
    • 或者,您可以将 datetime.datetime 对象表示为 ISO 8601 格式的字符串,然后使用属性和设置器执行类似的操作。
    • @eksortso checkout orjson
    猜你喜欢
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多