zoukankan      html  css  js  c++  java
  • python解决json序列化时间格式

    简单实例

    import json
    from datetime import datetime
    from datetime import date
    
    info = {
        "name": "ffm",
        "birth": datetime.datetime.now(),
        "age": 18,
        'hobbies': ['music', 'read', 'dancing'],
        'addr': {
            'country': 'China',
            'city': 'shanghai'
        }
    }
    
    class CJsonEncoder(json.JSONEncoder):
    
        def default(self, obj):
            if isinstance(obj, datetime):
                return obj.strftime('%Y-%m-%d %H:%M:%S')
            elif isinstance(obj, date):
                return obj.strftime('%Y-%m-%d')
            else:
                return json.JSONEncoder.default(self, obj)
    
    json_info=json.dumps(info, cls=CJsonEncoder)
    #进一步的进阶使用,将MongoDB和sqlalchemy加入
    from datetime import date, datetime
    # MongoDB的id
    from bson import ObjectId
    import json
    # sqlalchemy的元类
    from sqlalchemy.ext.declarative import DeclarativeMeta
    
    
    class JSONEncoder(json.JSONEncoder):
        def default(self, obj):
            if isinstance(obj, datetime):
                return obj.strftime('%Y/%m/%d %H:%M:%S')
            elif isinstance(obj, date):
                return obj.strftime('%Y-%m-%d')
            # 如果是MongoDB的id,将其转成字符串
            elif isinstance(obj, ObjectId):
                return str(obj)
            elif isinstance(obj, bytes):
                return obj.decode()
            # 如果是sqlalchemy数据库对象将其拆分,拼接成字典
            elif isinstance(obj.__class__, DeclarativeMeta):
                res = {}
                for key in obj.__dict__:
                    if key[0] != "_":
                        res[key] = obj.__dict__[key]
                return res
            else:
                return json.JSONEncoder.default(self, obj)
  • 相关阅读:
    Nginx配置简单说明
    JVM需要知道的一些设置参数
    Maven仓库(私服)中上传第三方jar包
    maven本地资源库设置
    sweetalert2使用教程
    《算法导论》学习笔记——二叉搜索树
    散列表
    跨域请求
    mvn常用命令
    Springmvc配置笔记
  • 原文地址:https://www.cnblogs.com/angelyan/p/10518856.html
Copyright © 2011-2022 走看看