Skip to content

Latest commit

 

History

History

json-benchmark

Comparison of JSON packages in Python

Python has a couple of packages which parse / dump JSON for you. Here is a comparison of them. The dates are as of 2020-09-26 07:00+00:00:

cPython JSON simplejson ujson orjson pysimdjson python-rapidjson
License Python Software Foundation License MIT / Academic Free License (AFL) BSD License MIT / Apache MIT MIT
Maturity
Version 3.8.6 3.17.2 3.2.0 3.4.0 3.0.0 0.9.1
Development Status Production/Stable Production/Stable Production/Stable Alpha Alpha
GH First release 1993-01-10 2006-01-01 2012-06-18 2018-11-23 2019-02-23 2017-03-02
CI-Pipeline GH, Travis, Azure GH, Travis, Appveyor GH, Travis Azure GH, Travis Appveyor
Operational Safety
GH Organization
GH Contributors 1319 30 50 9 7 15
Last release 2020-09-23 2020-07-16 2020-09-08 2020-09-25 2020-08-21 2019-11-13
Last Commit 2020-09-25 2020-07-16 2020-09-19 2020-09-25 2020-08-31 2020-05-08
PyPI Maintainers 3 4 1 1 2
Users
GH Stars 33,700 1310 2966 1348 374 397
GH Forks 16,200 290 306 48 25 31
GH Used By - 47,164 14,760 613 11 661
StackOverflow Questions 279 6 3 - 319
Benchmarks
GeoJSON Read 48ms 45ms 22ms 19ms 14ms 83ms
GeoJSON Write 291ms 352ms 34ms 15ms 289ms 108ms
Twitter Read 6ms 6ms 6ms 5ms 6ms 9ms
Twitter Write 25ms 33ms 5ms 3ms 24ms 6ms
2MB Float List Read 36ms 37ms 16ms 9ms 7ms 66ms
2MB Float List Write 161ms 186ms 25ms 12ms 164ms 104ms

Speed Plots

Read

  • The baseline for reading is just reading the text file as text.

Write

  • The baseline for writing is dumping the JSON as text (converted to text before)

Further Information

  • UltraJSON is a C library. ujson is a binding to it.
  • simdjson is a C++ library with funding from Canada. pysimdjson is a binding to it.
  • Rapidjson is a C++ library developed by Tencent. python-rapidjson is a binding to it.

Links