Ultra fast JSON encoder and decoder for Python
Project description
UltraJSON
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
Usage
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]
Encoder options
encode_html_chars
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"'
ensure_ascii
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)
'"åäö"'
escape_forward_slashes
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"'
indent
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"
}
Benchmarks
UltraJSON calls/sec compared to other popular JSON parsers with performance gain specified below each.
Test machine
Linux 5.0.0-1032-azure x86_64 #34-Ubuntu SMP Mon Feb 10 19:37:25 UTC 2020
Versions
- CPython 3.8.2 (default, Feb 28 2020, 14:28:43) [GCC 7.4.0]
- nujson : 1.35.2
- orjson : 2.6.1
- simplejson: 3.17.0
- ujson : 2.0.2
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 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for ujson-4.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7e73ec5ba1b42c2027773f69b70eff28df132907aa98b28166c39d3ea45e85b |
|
MD5 | eff60d34329e0b0841efb42710ea2d87 |
|
BLAKE2b-256 | b733b555a34c6025d5a12aacd0a014d54fe9691cc7667f56614407ede3781132 |
Hashes for ujson-4.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df481d4e13ca34d870d1fdf387742867edff3f78a1eea1bbcd72ea2fa68d9a6e |
|
MD5 | 79d75210959fdb2a16a797c00dafdb19 |
|
BLAKE2b-256 | 96f15c73090ba6e6135f092ca1bd9ccbfd5c130ef53e1fc7275d54d906729e0e |
Hashes for ujson-4.3.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b270088e472f1d65a0a0aab3190010b9ac1a5b2969d39bf2b53c0fbf339bc87a |
|
MD5 | ab9ffb6a38548c0a79c07e74c4a7679f |
|
BLAKE2b-256 | 037a5832aed6bf23cf8943934d770467a86ccb16852b6178a3477df7625bdeb9 |
Hashes for ujson-4.3.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85f28c38952b8a94183ab15ec6c6e89c117d00ceeae5d754ef1a33e01e28b845 |
|
MD5 | 741b7b7cff0911891f79490038bdc5f8 |
|
BLAKE2b-256 | d5f6c127f51a9943e40a26209f84e000c80cefef5b401854f27725c01ac12e01 |
Hashes for ujson-4.3.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d8eaab72ad8129c12ed90ebf310230bd014b6bbf99145ebf2bc890238e0254f |
|
MD5 | 0277d90c2698893eb4cf403a9e7148d5 |
|
BLAKE2b-256 | abacc3fbdc653e1107ee22ef410266a7dde2299b3846b51a4e101c51d8ffacdc |
Hashes for ujson-4.3.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0b9cde57eebaac26de040f8ebf0541e06fe9bcf7e42872dc036d2ced7d99ccf |
|
MD5 | 7df9b865d348f6467aad0dc639ae9b82 |
|
BLAKE2b-256 | cc9db0892fcb1c734264cc54bc7728ea44b688e34baea8fd94d7920c2f9af616 |
Hashes for ujson-4.3.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01d12df8eb25afb939a003284b5b5adca9788c1176c445641e5980fa892562ac |
|
MD5 | ae33c963d49d3dd73dedfaaf672eec7c |
|
BLAKE2b-256 | 2a4bb1a3bec38c6a1d5e1b8e577c78fb0a10d6b7b6034f66fd18bc4a745eb5ba |
Hashes for ujson-4.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 843fd8b3246b2b20bbae48b2334d26507c9531b2b014533adfc6132e3ec8e60c |
|
MD5 | 7718415453e0a241fd31ae645bf3fc6a |
|
BLAKE2b-256 | 214c449e53a16cfa4f5224efb5b8acfdf509f5bc8bd13f151fe49e94725123ea |
Hashes for ujson-4.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de42986e2602b6a0baca452ff50e9cbe66faf256761295d5d07ae3f6757b487d |
|
MD5 | b53acc29e71f1d1ef5f1e2b31de0a99a |
|
BLAKE2b-256 | ce437b1fd4fe76bbd40b8f877c9a03e98ca62396f7839393bc895597be9fbc5c |
Hashes for ujson-4.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d1083a0dcb39b43cfcd948f09e480c23eb4af66d7d08f6b36951f4c629c3bd1 |
|
MD5 | 5a919c1aa5749f826be34417e4674931 |
|
BLAKE2b-256 | a7da89cbc231d7626be54cb6463c00ae564cf2aa88f0b498d344433c8612a96a |
Hashes for ujson-4.3.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3609e0514f6f721c6c9818b9374ec91b994e59fb193af2f924ca3f2f32009f1c |
|
MD5 | 60b384dad11fea4361952f95cb77354f |
|
BLAKE2b-256 | 495a13095da215916b2f8103f17f858b169fca2ce35ade01ad338f3572978243 |
Hashes for ujson-4.3.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18040475d997d93a6851d8bee474fba2ec94869e8f826dddd66cdae4aa3fdb92 |
|
MD5 | 024d81e190919d57156da3c01e6d0a53 |
|
BLAKE2b-256 | 4f36af2ad0cddb6999b5222d843e2894ec3fe5fddeb612cc103ddd62e6d0de70 |
Hashes for ujson-4.3.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 103cbabe4e6fd70c957219519e37d65be612d7c74d91ef19022a2c8f8c5e4e82 |
|
MD5 | e186a051afc380d45e454ed0c34a061c |
|
BLAKE2b-256 | 1c882c89f7c6418069e555b0d15b358909e222eea0bd29b38a487a261cf245e3 |
Hashes for ujson-4.3.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 327ec982bb89abe779fe463e1013c47aae6ed53b76600af7cb1e8b8cb0ee9f85 |
|
MD5 | 936c9d7eff109c74a5eeed711d0d13b6 |
|
BLAKE2b-256 | f4f057660f1f97bc22d34aa36dbb0decd3b99fcb8082affd098d1f716083f24c |
Hashes for ujson-4.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c81159d3f1bcb5729ba019e63e78ee6c91b556e1ac0e67c7579768720fd3c4e |
|
MD5 | ed04356106e1112876199c032bb68de0 |
|
BLAKE2b-256 | 563d5f7ef7d7eb9750cbdf1d78148fb72e6c2329d1a74da757cb101673dd7195 |
Hashes for ujson-4.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f211c7c0c9377cbf4650aa990118d0c2cce3c5fad476c39ecd35b6714ba4463 |
|
MD5 | 92768838e84aa783f732a1d8619449b1 |
|
BLAKE2b-256 | 10acd520022d4222fd810582426cd8e12fb906f84eb1f8c31634523fbd2f2881 |
Hashes for ujson-4.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b850029d64008e970cae04ada69aa33e1cd412106a1efde221269c1cda1b40cc |
|
MD5 | a48cb5da82b0e39bf67efcbdccd6d76a |
|
BLAKE2b-256 | 81236fe2e65b3a3e43376f8e695d1a041b3e25ce6ddf6759ced15da79a81e5e5 |
Hashes for ujson-4.3.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32ee97ec37af31b35ca4395732d883bf74fb70309d38485f7fb9a5cc3332c53e |
|
MD5 | 3905c305ea59f55e784e312a0196d9e2 |
|
BLAKE2b-256 | bf2319c51f724c92feecc5251006508098686b138310a77a9a5886a66f87808d |
Hashes for ujson-4.3.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf199015910fcfa19b6e12881abeb462498791b2ab0111ff8b17095d0477e9d4 |
|
MD5 | c9b4c99860b5e717c9fe1ec5e532794c |
|
BLAKE2b-256 | ab185836a2fbb20df8dbeb988b786fdedb291bb8314df36b9ac4e3836fab9fea |
Hashes for ujson-4.3.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47af81df5d575e36d4be9396db94f35c8f62de3077a405f9af94f9756255cef5 |
|
MD5 | 36023e01edd24400aea50486de60e63f |
|
BLAKE2b-256 | 6aa4edea00603f8e6ebb07e3eb9ddcc3e7e980626d5f17297e01ddb7bb9ae05b |
Hashes for ujson-4.3.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6df94e675b05ecf4e7a57883a73b916ffcb5872d7b1298ac5cef8ac1cbce73c6 |
|
MD5 | 3a90c3617eb6cd6adfb2c2e92c747e9a |
|
BLAKE2b-256 | fee56c82651fb91a883bc4c6db3916ce9f37437411999c212170c537aa0519b8 |
Hashes for ujson-4.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f158fdb08e022f2f16f0fba317a80558b0cebc7e2c84ae783e5f75616d5c90d5 |
|
MD5 | 5d35726b409993d2462e76a3e1fabe22 |
|
BLAKE2b-256 | f96673d835d491f8e87ba5fa566ea1ea25acf355b39adfaf2a952352009d4a51 |
Hashes for ujson-4.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f35dcf6d2a67e913a7135809006bd000d55ad5b5834b5dbe5b82dcf8db1ac05 |
|
MD5 | 69ea5ef5ce378b80bf5b5e6446448396 |
|
BLAKE2b-256 | 27b97b5e7d040a8881693872c9baead18a442cc23821e5b55e4496ac129da95b |
Hashes for ujson-4.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a06006dad34c8cfaa734bd6458452e46702b368da53b56e7732351082aa0420 |
|
MD5 | 9a116b143cdbabd02abf75fd2c2654cc |
|
BLAKE2b-256 | 0b1601944627b14866723cd2b49c0d1c489c5fa7e7fa136032a5908f7c86c644 |
Hashes for ujson-4.3.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 087cd977f4f63f885a49607244e7e157801a22aadcc075a262d3c3633138573c |
|
MD5 | a0ef6a58f9ed66ce0cfc7b7e9fabbbeb |
|
BLAKE2b-256 | 5cc2ba145acd9978f76e16ec04128f27279e6d941add0c938fd9de1553c06ad5 |
Hashes for ujson-4.3.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 294e907f134fb5d83e0a4439cf4040d74da77157938b4db5730cd174621dcf8b |
|
MD5 | 8dc4a46d654e447842d1ca0ba7b24966 |
|
BLAKE2b-256 | 3a16310a0e55b66e297dd07d5abea634596fd333ae55e22074402dd613d76a83 |
Hashes for ujson-4.3.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0e9510e867c72a87db2d16377c2bef912f29afd8381d1fdae332b9b7f697efa |
|
MD5 | 58e964003950c1cc6553774381b60a01 |
|
BLAKE2b-256 | abba548fb255e67673986c9de66861a7daab4f50b9a668338a28cae339ebc8d9 |
Hashes for ujson-4.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00fd67952b1a8a46cf5b0a51b3838187332d13d2e8d178423c5a5405c21d9e7c |
|
MD5 | 6b557307efc9a471ddbdef7f52d086ab |
|
BLAKE2b-256 | 2c6d28cb921d462255630ad0ee5131d07fbdfab2bf5b8a08e69275470077f7be |
Hashes for ujson-4.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd0901db652a58f46550074596227dbddb7a02d2de744d3cd2358101f78037bb |
|
MD5 | a5496c5944b21da70d0ed98ca58a90f7 |
|
BLAKE2b-256 | 8357bfe728a720811fa2ea249b796e4e860de3a4c6a5f171c39527783beb33df |
Hashes for ujson-4.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc9a508efb829bf0542be9b2578d8da08f0ab1fa712e086ebb777d6ec9e6d8d2 |
|
MD5 | 00f791ed7b3afc3ae9ae87651b6f3357 |
|
BLAKE2b-256 | 80926302d9398ca602e3e6b94ba870345f50dbf81af68b87a1fe1ad93243ee48 |
Hashes for ujson-4.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a318df321d7adc3de876b29640cca8de1ad4d4e4fe7c4a76d64d9d6f1676304 |
|
MD5 | 88c04bdb2633f61b048b54029fbcb7d4 |
|
BLAKE2b-256 | 6133abe4f309096ae9e698f2e18afe61202a79795ab02a2fd8004aad1c9ccb71 |
Hashes for ujson-4.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43d2403451d7bd27b6a600f89d4bd2cf6e1b3494254509d8b5ef3c8e94ae4d8e |
|
MD5 | c3edb1a8add3024f80a47a837dc8a264 |
|
BLAKE2b-256 | efb013109e3a7143b366d19fd31f7f1847947ccea20c2b019607bff3e9b3dba4 |
Hashes for ujson-4.3.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b80a35bad8fad1772f992bae8086b0cde788cd3b37f35d0d4506c93e6edad645 |
|
MD5 | 03e46bb9c65c6bfc423f22126cdf7a95 |
|
BLAKE2b-256 | 1b2135af6dd59b8abb8137ff9160b5afc91332874a54880aa7cb2d1b465a05d9 |
Hashes for ujson-4.3.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1601354caaab0697a9b24815a31611ad013d29cf957d545fc1cd59835b82e3c1 |
|
MD5 | b2890db354a8276adce95853ab95719d |
|
BLAKE2b-256 | 07a7073e156221104f787d162f8347a5698dd3c7bbe3b637413d203924c805bd |
Hashes for ujson-4.3.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b72fadeea5727204674c9f77166da7feaafdf70f1ed50bb15bf321f7c39c7194 |
|
MD5 | b38e85dde2321187512714a808602a41 |
|
BLAKE2b-256 | 52e6b274c96c001c6bfbd94638bc96f819730994ea80cfe522f07013deebd4f3 |
Hashes for ujson-4.3.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6c32356145d95a0403b5895d60c36798a48af13b8863e43ad7457a0361afad0 |
|
MD5 | 047686d61114109751422749519ba524 |
|
BLAKE2b-256 | ba79cd72294165b47d18443ba8a7bfb53182d53dd878722c7e9b58e2e95d04d8 |
Hashes for ujson-4.3.0-cp36-cp36m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9baa160ba1d3f712a356e77718251c9d9eee43ed548debdcc9d75b06a75b3e82 |
|
MD5 | 3cc2a3f35d131eb4afc7cf2d18796fdb |
|
BLAKE2b-256 | b7b35ed6fc5249d48605e9b54b51f31d8850242c78c0e72c36b1370bd6990d5e |
Hashes for ujson-4.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8e2a52fbeee55db306b9306892f5cde7e78c56069c1212abf176d1886fff60a |
|
MD5 | 0067ea579ef58d97996d2c1c58b38c42 |
|
BLAKE2b-256 | 79a5ad2ee77c79b8448c4068b4b6522ee9090a7824ba3a5c342f136f0a03f1dd |
Hashes for ujson-4.3.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f4a34386785a33600ac7442fec34c3d8b2d7e5309cfc94bc7c9ba93f12640c2 |
|
MD5 | a68d3b15190946b07ce5653553c31762 |
|
BLAKE2b-256 | 7e2d72624fc326960405e11031d7817e8285b3ac3f1b281d090e44806c2a78cf |
Hashes for ujson-4.3.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c5330692122b999997911252466a7d17e4e428d7d9a8db0b99ba81b8b9c010c |
|
MD5 | 3fabfd22b56f73ae4a6babfb283f313a |
|
BLAKE2b-256 | 0b032e295d523cad79a03ae5ffcb3f93f8cb11aa2f6e7705ce1537561e3a0b08 |
Hashes for ujson-4.3.0-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a0d9dde58937976cd06cd776411b77b0e5d38db0a3c1be28ee8bb428ff5a42b |
|
MD5 | 8559ac4093182ce1f03b73a1f819c60c |
|
BLAKE2b-256 | 370f26f1a0ba1108788e48c3ee092dcc3fe8225c27db662142cf3c1966f40e02 |