simplejson
Simple, fast, extensible JSON encoder/decoder for Python
Decision gist · record as of 2026-08-14
Yes. simplejson is actively maintained, has no dependencies, installs with low friction, carries no security vulnerabilities, and is permissively licensed. Install it if you need JSON serialization with custom hooks or must support Python 2.7; otherwise the standard library's json module is sufficient for most use cases.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure Python with no runtime dependencies, though an optional C extension is available for performance.
- Actively maintained with recent commits and broad Python version support from 2.7 through 3.14.
License · maintenance · safety
MIT OR AFL-2.1 (permissive) — Licensed under MIT OR AFL-2.1 (permissive dual license), imposing no significant restrictions on use, modification, or distribution in most contexts.
last release 2026-04-24 (112 days) · last repo commit 2026-08-06 · 1,712 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 62,249,238 downloads/mo, #497 on PyPI
Alternatives
Verify before relying
import simplejson
data = {'name': 'example', 'value': 'test'}
json_str = simplejson.dumps(data)
restored = simplejson.loads(json_str)- Whether the optional C extension is automatically compiled during installation or requires system development headers
- Performance characteristics of the C extension relative to the pure Python implementation
What it is and what it does
simplejson is a standalone JSON encoder and decoder for Python, maintained as the external development version of the standard library's json module. It provides the core JSON serialization and deserialization that Python's built-in json offers, but with additional features and broader version support. The package is pure Python with zero runtime dependencies, though it includes an optional C extension for speed.
The main value over the standard library lies in its extensibility: the encoder accepts a `default` kwarg to customize serialization of arbitrary objects, and the decoder accepts `object_hook` or `object_pairs_hook` to post-process deserialized JSON. It also provides a `RawJSON` class to embed pre-encoded JSON strings without re-encoding. The package maintains backward compatibility with Python 2.7 and supports current Python versions through 3.14, including free-threaded builds.
Use it for
- Serialize Python objects to JSON with custom type handling via the `default` parameter for non-standard types
- Deserialize JSON with post-processing logic using `object_hook` to reconstruct typed objects or validate structure
- Implement JSON-RPC protocols that require richer type systems than JSON natively supports
- Embed pre-encoded JSON fragments into larger JSON structures without redundant re-encoding using `RawJSON`
- Maintain compatibility with legacy Python 2.7 systems while using a modern, actively maintained JSON library
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
simplejson is actively maintained, has no dependencies, installs with low friction, carries no security vulnerabilities, and is permissively licensed. Install it if you need JSON serialization with custom hooks or must support Python 2.7; otherwise the standard library's json module is sufficient for most use cases.
Install
simplejson on PyPI
Before you install
Low friction: pure Python with no runtime dependencies, though an optional C extension is available for performance. Actively maintained with recent commits and broad Python version support from 2.7 through 3.14.
License in practice
Licensed under MIT OR AFL-2.1 (permissive dual license), imposing no significant restrictions on use, modification, or distribution in most contexts.
Quickstart
import simplejson
data = {'name': 'example', 'value': 'test'}
json_str = simplejson.dumps(data)
restored = simplejson.loads(json_str)
Verify before relying
- Whether the optional C extension is automatically compiled during installation or requires system development headers
- Performance characteristics of the C extension relative to the pure Python implementation
Package facts
| License | MIT OR AFL-2.1 permissive |
| Python support | Supports the current Python release !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=2.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 112 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 62,249,238 / month, #497 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: WebAssembly :: EmscriptenIntended Audience :: DevelopersProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: GraalPyProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Libraries :: Python Modules |
Evidence: simplejson-4.1.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “json encoder decoder”
- simplejsonsimplejson encodes Python objects to JSON and decodes JSON strings…
- py-ubjsonEncodes and decodes data in Universal Binary JSON format, a compact…
- json-streamStreams JSON data from files, URLs, or iterators without loading the…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also jsonconversion · py-ubjson · demjson3 · json-encoder · canonicaljson · json-numpy · pyjson5 · flask-orjson · python-rapidjson · json-fix