Extended JSON encoder for Python data structures.
A subclass of JSONEncoder, it handles these additional types:
datetime.datetime
— a string of the formYYYY-MM-DDTHH:mm:ss.sssZ
orYYYY-MM-DDTHH:mm:ss.sss+HH:MM
as defined in ECMA-262.datetime.date
— a string of the formYYYY-MM-DD
as defined in ECMA-262.datetime.time
— a string of the formHH:MM:ss.sss
as defined in ECMA-262.datetime.timedelta
- a string representing a duration as defined in ISO-8601. For example,timedelta(days=1, hours=2, seconds=3.4)
is represented asP1DT02H00M03.400000S
.decimal.Decimal
,uuid.UUID
— a string representation of the object.enum.Enum
— a.value
property of enum member.
$ pip install json-ext-encoder
import json
from json_ext_encoder import JSONEncoder
json.dumps({...}, cls=JSONEncoder)
To work on the json-ext-encoder
codebase, you'll want to clone the project locally and install the required dependencies via poetry:
$ git clone git@github.com:Gr1N/json-ext-encoder.git
$ poetry install
To run tests and linters use command below:
$ poetry run tox
If you want to run only tests or linters you can explicitly specify which test environment you want to run, e.g.:
$ poetry run tox -e py37-tests
json-ext-encoder
is licensed under the MIT license. See the license file for details.