zoukankan      html  css  js  c++  java
  • 08 Json结构化Datetime时间以及保留中文

    错误描述:

    1 import json
    2 import datetime
    3 
    4 a = datetime.datetime.now()
    5 print(a)
    6 
    7 b = json.dumps(a)
    8 print(b)

    如上代码,执行会报错:

    TypeError: datetime.datetime(2017, 2, 5, 10, 27, 48, 155328) is not JSON serializable

    因为datetime类型的数据无法直接用json序列化。

    解决办法:

    class CJsonEncoder(json.JSONEncoder):
        def default(self, obj):
            #if isinstance(obj, datetime):
                #return obj.strftime('%Y-%m-%d %H:%M:%S')
            if isinstance(obj, datetime.date):
                return obj.strftime('%Y-%m-%d %H:%M:%S')
            else:
                return json.JSONEncoder.default(self, obj)
    
    import json
    import datetime
    
    a = datetime.datetime.now()
    print(a)
    
    b = json.dumps(a,cls=CJsonEncoder)
    print(b)

    执行结果:

    2017-02-05 10:29:05.308121
    "2017-02-05 10:29:05"

     二、保留中文只需要在dumps的时候填入ensure_ascii=False

    如下:

    final_json = json.dumps(list_json, sort_keys=True, indent=4, ensure_ascii=False)
  • 相关阅读:
    PHP-------抽象和接口
    MySQL函数
    MySQL索引
    MySQL语法
    MySQL视图、事务
    最简洁粗暴版的虚拟用户配置FTP
    linux网络bond技术
    CentOS 7服务
    Nginx 基础
    shell 截取指定的字符串
  • 原文地址:https://www.cnblogs.com/a2534786642/p/11050352.html
Copyright © 2011-2022 走看看