Skip to main content
  • json encoder uses singledispatch pattern instead of JSONEncoder class overwrites.

  • No more json.dumps(data, cls=MyJSONEncoder) everywhere.

  • Comes with default serialization for time, date, datetime, UUID and Decimal

  • Easy to use, easy to change serialization behaviour

  • Not tight to any json implementation json, simplejson, ujson

  • It parse json float numbers into Decimal objects to prevent python float precision issues.

https://travis-ci.org/NZME/json-encoder.svg?branch=master&maxAge=259200 https://img.shields.io/pypi/v/json-encoder.svg?maxAge=259200

Installation

$ pip install json-encoder

Quick start

  • Use “json_encoder.json” instead of default python json:

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

Configuration

  • Chose json implementation:

    # 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)
  • To change json implementation for concrete call do:

    from json_encoder import json
    import simplejson
    
    result = json.dumps(data, json=simplejson)
  • To make your object JSON serializable do:

    # 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)
  • To overwrite JSON serializer behaviour defined in json_encoder.encoder:

    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('-', '')

Requirements

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

json-encoder-0.4.4.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

json_encoder-0.4.4-py2.py3-none-any.whl (7.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file json-encoder-0.4.4.tar.gz.

File metadata

  • Download URL: json-encoder-0.4.4.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for json-encoder-0.4.4.tar.gz
Algorithm Hash digest
SHA256 26e9711008a44e379d0689108738f2365e653dc17961bdbe701f61ad165beab5
MD5 468394269bbc6168dc3fb3798174f61f
BLAKE2b-256 cc6aacc76d660b75f6c565ee80d907296f46e72ebd49fc997df8b253833a2fad

See more details on using hashes here.

File details

Details for the file json_encoder-0.4.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for json_encoder-0.4.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ca5c9aa211ac79d13f125c7d0554ae55a0c872cebc81a61fc4d228e9cc83efd8
MD5 66f7e19eb81ffe3c31d6fd948ea17899
BLAKE2b-256 c41b6825d96e98bb90baf0498fdd6b5d2c735e3caf0f944bcb158bc0bd0ba68c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.4 This release

2 files

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4.0

1 file

0.3.0

1 file

0.0.2

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page