gpt4 book ai didi

Python ISO 日期时间包含 'T' 字符

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:44 25 4
gpt4 key购买 nike

我怎样才能让这个 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)

例如时间戳:

2015-04-11T01:30:00

最佳答案

datetime.isoformat() 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.__str__()datetime.isoformat(' ') 基本相同。

演示:

>>> from datetime import datetime
>>> obj = datetime(2015, 4, 21, 20, 0, 0)
>>> obj.isoformat()
'2015-04-21T20:00:00'
>>> obj.isoformat(' ')
'2015-04-21 20:00:00'

只有 datetime.isoformat() 方法采用该参数; date.isoformat() 没有;你必须调整你的 default 处理程序来区分 datedatetime 对象,或者只使用 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)

关于Python ISO 日期时间包含 'T' 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29578067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com