Python ISO datetime包含'T'ch

2024-10-03 09:12:42 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使这个lambda得到一个时间戳,它不包括时间戳中的T?在

@app.route("/bookings", methods=['GET'])
def bookings():
    bookings = Booking.query.all()
    dictList = []
    for b in bookings:
        dictList.append(b.as_dict())
    dthandler = lambda obj: (
                    obj.isoformat()
                    if isinstance(obj, datetime.datetime)
                    or isinstance(obj, datetime.date)
                    else None)
    return json.dumps(dictList, default=dthandler)

例如时间戳:

^{pr2}$

Tags: lambdaobjappgetdatetimedef时间query
1条回答
网友
1楼 · 发布于 2024-10-03 09:12:42

^{} function接受一个参数:要使用的分隔符。如果省略,则默认为'T';如果您需要其他内容,则将其传入:

obj.isoformat(' ')

引用文件:

The optional argument sep (default 'T') is a one-character separator, placed between the date and time portions of the result.

您也可以在这里将对象转换为字符串;^{}datetime.isoformat(' ')基本相同。在

演示:

^{pr2}$

只有datetime.isoformat()方法接受该参数;date.isoformat()没有;您必须调整您的default处理程序来区分date和{}对象,或者只对其中一个使用str()

dthandler = lambda obj: (
                obj.isoformat(' ') if isinstance(obj, datetime.datetime)
                else obj.isoformat() if isinstance(obj, datetime.date)
                else None)

或者

dthandler = lambda obj: (
                str(obj) if isinstance(obj, (datetime.datetime, datetime.date))
                else None)

相关问题 更多 >