json编码器使用singledispatch模式而不是json encoder类覆盖

json-encoder的Python项目详细描述


  • json编码器使用singledispatch pattern而不是json encoder类覆盖。
  • 不再有json.dumps(data,cls=myjsonencoder)无处不在。
  • 带有时间、日期、日期时间、uuid和十进制的默认序列化
  • 易于使用,易于更改序列化行为
  • 对任何json实现json、simplejson、ujson..
  • 它将json浮点数解析为十进制对象,以防止python浮点数精度问题
https://travis-ci.org/NZME/json-encoder.svg?branch=master&maxAge=259200https://img.shields.io/pypi/v/json-encoder.svg?maxAge=259200

安装

$ pip install json-encoder

快速启动

  • 使用“json_encoder.json”而不是默认的python json:

    from json_encoder import json
    
    result = json.dumps(data)
    

配置

  • 选择json实现:

    # simplejson library is used as default json implementation if present
    # otherwise standard python json implementation is used
    # to use other json implementation globally, do:
    
    import ujson
    from json_encoder import use_json_library
    
    use_json_library(ujson)
    
  • 要更改具体调用的json实现,请执行以下操作:

    from json_encoder import json
    import simplejson
    
    result = json.dumps(data, json=simplejson)
    
  • 要使对象json可序列化,请执行以下操作:

    # example how to make python fraction object json serializable
    
    from fractions import Fraction
    from json_encoder.encoder import json_encoder
    
    @json_encoder.register(Fraction)
    def encode_fraction(obj):
        return '{}/{}'.format(obj.numerator, obj.denominator)
    
  • 覆盖json-encoder.encoder中定义的json序列化程序行为:

    from uuid import UUID
    from six import text_type
    from json_encoder.encoder import json_encoder
    
    @json_encoder.register(UUID)
    def encode_uuid(obj):
        return text_type(obj).replace('-', '')
    

要求

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我如何在我的安卓应用程序中集成一个当我点击注销按钮时应该打开的反馈表单?   java在循环遍历SQL表时退出   java hibernate with jpa不会停止   java在从方法返回值时,是否有一种很好的方法“null”成员变量?   java这段代码的运行时复杂性是多少?说明中给出了代码   java如何访问struts if标记的test属性中的属性   TomTom Android SDK中的java返回位置为null   Java equals方法的良好设计   java在拖动ListView边缘时如何检测?   java如何从游标中检索字符串数组   SQLiteJava和sqlite4java   音频连接来自Java的两个WAV文件?   使用java的用户的ip地址   java@XmlRegistry它是如何工作的?   java如何防止每个url访问wicket页面   java getBytes()在Windows(Java9)下正常工作,在Linux下也不工作   intellij idea Java不能将lambda用于自制接口lambda转换的目标类型必须是接口