Based on the "Serialization" category.
Alternatively, view ultrajson alternatives based on common mentions on social networks and blogs.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ultrajson or a related project?
PyPI version Supported Python versions PyPI downloads GitHub Actions status Travis CI status codecov DOI Code style: Black
UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 3.6+.
Install with pip:
python -m pip install ujson
May be used as a drop in replacement for most other JSON parsers for Python:
>>> import ujson
>>> ujson.dumps([{"key": "value"}, 81, True])
'[{"key":"value"},81,true]'
>>> ujson.loads("""[{"key": "value"}, 81, true]""")
[{'key': 'value'}, 81, True]
Used to enable special encoding of "unsafe" HTML characters into safer Unicode
sequences. Default is False:
>>> ujson.dumps("<script>John&Doe", encode_html_chars=True)
'"\\u003cscript\\u003eJohn\\u0026Doe"'
Limits output to ASCII and escapes all extended characters above 127. Default is True.
If your end format supports UTF-8, setting this option to false is highly recommended to
save space:
>>> ujson.dumps("åäö")
'"\\u00e5\\u00e4\\u00f6"'
>>> ujson.dumps("åäö", ensure_ascii=False)
'"åäö"'
Controls whether forward slashes (/) are escaped. Default is True:
>>> ujson.dumps("http://esn.me")
'"http:\\/\\/esn.me"'
>>> ujson.dumps("http://esn.me", escape_forward_slashes=False)
'"http://esn.me"'
Controls whether indentation ("pretty output") is enabled. Default is 0 (disabled):
>>> ujson.dumps({"foo": "bar"})
'{"foo":"bar"}'
>>> print(ujson.dumps({"foo": "bar"}, indent=4))
{
"foo":"bar"
}
UltraJSON calls/sec compared to other popular JSON parsers with performance gain specified below each.
Linux 5.0.0-1032-azure x86_64 #34-Ubuntu SMP Mon Feb 10 19:37:25 UTC 2020
| ujson | nujson | orjson | simplejson | json | |
|---|---|---|---|---|---|
| Array with 256 doubles | |||||
| encode | 22,082 | 4,282 | 76,975 | 5,328 | 5,436 |
| decode | 24,127 | 34,349 | 29,059 | 14,174 | 13,822 |
| Array with 256 UTF-8 strings | |||||
| encode | 3,557 | 2,528 | 24,300 | 3,061 | 2,068 |
| decode | 2,030 | 2,490 | 931 | 406 | 358 |
| Array with 256 strings | |||||
| encode | 39,041 | 31,769 | 76,403 | 16,615 | 16,910 |
| decode | 25,185 | 24,287 | 34,437 | 32,388 | 27,999 |
| Medium complex object | |||||
| encode | 10,382 | 11,427 | 32,995 | 3,959 | 5,275 |
| decode | 9,785 | 9,796 | 11,515 | 5,898 | 7,200 |
| Array with 256 True values | |||||
| encode | 114,341 | 101,039 | 344,256 | 62,382 | 72,872 |
| decode | 149,367 | 151,615 | 181,123 | 114,597 | 130,392 |
| Array with 256 dict{string, int} pairs | |||||
| encode | 13,715 | 14,420 | 51,942 | 3,271 | 6,584 |
| decode | 12,670 | 11,788 | 12,176 | 6,743 | 8,278 |
| Dict with 256 arrays with 256 dict{string, int} pairs | |||||
| encode | 50 | 54 | 216 | 10 | 23 |
| decode | 32 | 32 | 30 | 20 | 23 |
| Dict with 256 arrays with 256 dict{string, int} pairs, outputting sorted keys | |||||
| encode | 46 | 41 | 8 | 24 | |
| Complex object | |||||
| encode | 533 | 582 | 408 | 431 | |
| decode | 466 | 454 | 154 | 164 |
Do not miss the trending, packages, news and articles with our weekly report.