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)
  • 相关阅读:
    vue表单验证定位到错误的地方
    INSPINIA Version 2.5 Bootstrap3
    volatile 彻底搞懂
    solr6.4.2之webservice兼容升级
    快速排序
    Elasticsearch调优篇 10
    TCP 连接为什么需要 3 次握手和 4 次挥手
    搜索技术与方案的选型与思考
    Elasticsearch调优篇 09
    Elasticsearch调优篇 08
  • 原文地址:https://www.cnblogs.com/angelyan/p/10518856.html
Copyright © 2011-2022 走看看