Python学习笔记--json序列化时间报错-改源码

问题:转换时间报错

执行代码为:

import json
from datetime import  date,datetime
d = {"time1":date.today(),"time2":datetime.today()}
res = json.dumps(d) # 报错

 

 

TypeError: Object of type date is not JSON serializable

方案1:

  • 手动转换str()

方案2:

  • 继承类
  • 复制代码
    import json
    from datetime import  date,datetime
    class MyJsonEncoder(json.JSONEncoder):
        def default(self, o:str):
            if isinstance(o,datetime):
                # print("找到2")
                return o.strftime("%Y-%m-%d %X")
            if isinstance(o,date):
                # print("找到1")
                return o.strftime("%Y-%m-%d")
            return o
    
    
    d = {"time1":date.today(),"time2":datetime.today()}
    print(type(date.today()),type(datetime.today()))
    # res = json.dumps(d) # 报错
    res = json.dumps(d,cls=MyJsonEncoder)
    print(res)
    复制代码

     

 

posted @   o蹲蹲o  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示