Python Sqlalchemy 查询数据返回时间类型的问题?

  • 通过下面代码可以返回 JSON 数据,但是 datetime 类型字段变成别的样子了该如何解决?
engine = create_engine("mysql+pymysql://root:root@127.0.0.1/test")

with engine.connect() as connection:
    result = connection.execute(text("select * from data limit 10"))
    return [dict(row) for row in result.mappings()]

截屏2023-07-05 16.28.33.png

  • 变成了 Sat, 22 Jan 2022 21:20:26 GMT 这样的格式

截屏2023-07-05 16.56.31.png

阅读 2.3k
1 个回答

手动转一下

from datetime import datetime

# ...

result = connection.execute(text("select * from data limit 10"))
data = []
for row in result:
    row_dict = {key: value.strftime('%Y-%m-%d %H:%M:%S') if isinstance(value, datetime) else value for key, value in row.items()}
    data.append(row_dict)

return data

如果希望在整个应用程序中都使用相同的时间格式,也可以将其作为配置项进行设置,可以这样搞

import datetime

# 设置全局时间格式
datetime.datetime.strftime = lambda self, fmt: self.strftime(fmt) if isinstance(self, datetime.datetime) else str(self)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题