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)
  • 相关阅读:
    第七天冲刺
    MySQL管理
    LNMP环境搭建
    docker使用笔记
    Laravel5.2使用笔记
    Linux使用笔记
    Redis3.2.11在centos9安装与卸载
    Ubuntu系统
    Linux下安装与卸载PHP
    安装Linux
  • 原文地址:https://www.cnblogs.com/a2534786642/p/11050352.html
Copyright © 2011-2022 走看看