gpt4 book ai didi

Python JSON编码器支持日期时间?

转载 作者:IT老高 更新时间:2023-10-28 20:43:22 26 4
gpt4 key购买 nike

有没有什么优雅的方法可以让 Python JSON 编码器支持日期时间?一些第 3 方模块或简单的 hack?

我正在使用 tornado 的数据库包装器从 db 中获取一些行以生成 json。查询结果包含一个常规的 MySQL 时间戳列。

很烦人的是 Python 的默认 json 编码器不支持它自己的 datetime 类型,这在各种数据库查询中都很常见。

我不想修改 Python 自己的 json 编码器。有什么好的做法吗?非常感谢!

ps:我通过修改 Python JSON 编码器默认方法发现了一个肮脏的 hack:

变化:

def default(self, o):
raise TypeError(repr(o) + " is not JSON serializable")

收件人:

def default(self, o):
from datetime import date
from datetime import datetime
if isinstance(o, datetime):
return o.isoformat()
elif isinstance(o, date):
return o.isoformat()
else:
raise TypeError(repr(o) + " is not JSON serializable")

好吧,这将是仅适用于开发环境的临时解决方案。

但是对于长期的解决方案或生产环境,这很丑陋,每次部署到新服务器时都必须进行修改。

有没有更好的方法?我不想修改 Python 代码本身,也不想修改 Tornado 源代码。我可以用我自己的项目代码做些什么来实现这一点吗?最好是一步到位。

非常感谢!

最佳答案

json.dumps(thing, default=str)

关于Python JSON编码器支持日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122007/

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