$npx skillfedfor your agent

ijson

Iterative JSON parser with standard Python iterator interfaces

Worth itPyPI Python ModulesReleased Jul 202653.3M downloads / moBSD-3-Clause AND ISCPlatform wheel

Decision gist · record as of 2026-08-14

platform wheels — ijson-3.5.1-cp310-cp310-macosx_10_9_universal2.whl · ijson-3.5.1-cp310-cp310-macosx_10_9_x86_64.whl · ijson-3.5.1-cp310-cp310-macosx_11_0_arm64.whl
v3.5.1 · released 2026-07-06 · Python >=3.9

Yes. ijson is actively maintained, production-stable, permissively licensed, has no known vulnerabilities, and solves a real problem—streaming JSON parsing—that the standard library does not address. Install it if you regularly work with large JSON files, APIs, or need memory-efficient incremental parsing. The medium install friction is mitigated by pre-built wheels for all major platforms and Python versions.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.9 or later; file-like object must provide a read(size) method returning bytes or str.
  • Medium install friction due to compiled C extensions, but binary wheels are provided for major platforms and Python versions (3.9–3.14) and built automatically via GitHub Actions, reducing build-from-source scenarios.

License · maintenance · safety

BSD-3-Clause AND ISC (permissive) — Dual-licensed under BSD-3-Clause and ISC (both permissive), so commercial and proprietary use is permitted with minimal restrictions.

last release 2026-07-06 (39 days) · last repo commit 2026-08-10 · 1,093 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 53,309,834 downloads/mo, #554 on PyPI

Verify before relying

import ijson
from urllib.request import urlopen

f = urlopen('http://example.com/data.json')
objects = ijson.items(f, 'earth.europe.item')
for obj in objects:
    print(obj)
  • Performance characteristics compared to standard json module for different file sizes and JSON structures
  • Whether asyncio support covers all parsing modes (items, kvitems, parse, basic_parse) equally
Same gist for agents: .md · .json

What it is and what it does

ijson is a JSON parser designed to handle large or streaming JSON documents without loading the entire structure into memory at once. It provides multiple interfaces at different abstraction levels: high-level functions like `items()` and `kvitems()` that yield complete Python objects or key-value pairs from a JSON path, mid-level `parse()` that emits (prefix, event, value) tuples, and low-level `basic_parse()` that emits raw (event, value) pairs. The parser accepts file-like objects (files, HTTP responses, sockets), byte/string inputs, iterators, and asynchronous file objects, making it flexible for both synchronous and async workflows.

It is commonly used when JSON payloads are too large to fit in memory, when you need to react to events as they arrive rather than construct full objects, or when you want to extract specific nested values from deeply nested structures. The package includes command-line tools for visualization and benchmarking, supports event interception for filtering or injection, and offers a push-based coroutine interface as an alternative to pull-based file reading.

Use it for

  • Parse multi-gigabyte JSON files or streaming APIs without loading the entire document into memory
  • Extract specific nested objects from large JSON structures using path-based queries (e.g., 'earth.europe.item')
  • React to JSON events in real-time (e.g., counting occurrences of a key) without constructing intermediate objects
  • Asynchronously consume JSON from HTTP responses or async file objects in asyncio applications
  • Filter or transform JSON content on-the-fly by intercepting and modifying the event stream

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

ijson is actively maintained, production-stable, permissively licensed, has no known vulnerabilities, and solves a real problem—streaming JSON parsing—that the standard library does not address. Install it if you regularly work with large JSON files, APIs, or need memory-efficient incremental parsing. The medium install friction is mitigated by pre-built wheels for all major platforms and Python versions.

Install

ijson on PyPI

Before you install

Medium install friction due to compiled C extensions, but binary wheels are provided for major platforms and Python versions (3.9–3.14) and built automatically via GitHub Actions, reducing build-from-source scenarios.

Requires Python 3.9 or later; file-like object must provide a read(size) method returning bytes or str.

License in practice

Dual-licensed under BSD-3-Clause and ISC (both permissive), so commercial and proprietary use is permitted with minimal restrictions.

Quickstart

import ijson
from urllib.request import urlopen

f = urlopen('http://example.com/data.json')
objects = ijson.items(f, 'earth.europe.item')
for obj in objects:
    print(obj)

Verify before relying

  • Performance characteristics compared to standard json module for different file sizes and JSON structures
  • Whether asyncio support covers all parsing modes (items, kvitems, parse, basic_parse) equally

Package facts

LicenseBSD-3-Clause AND ISC permissive
Python supportSupports the current Python release >=3.9
Install frictionMedium. Platform-specific wheel
Runtime dependenciesNone
MaintenanceActively maintained 39 days since the last release
Last repo commit
First released
Downloads53,309,834 / month, #554 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Libraries :: Python Modules

Evidence: ijson-3.5.1-cp310-cp310-macosx_10_9_universal2.whl; ijson-3.5.1-cp310-cp310-macosx_10_9_x86_64.whl; ijson-3.5.1-cp310-cp310-macosx_11_0_arm64.whl; ijson-3.5.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl; ijson-3.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; ijson-3.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; ijson-3.5.1-cp310-cp310-musllinux_1_2_aarch64.whl; ijson-3.5.1-cp310-cp310-musllinux_1_2_i686.whl; ijson-3.5.1-cp310-cp310-musllinux_1_2_x86_64.whl; ijson-3.5.1-cp310-cp310-win32.whl; ijson-3.5.1-cp310-cp310-win_amd64.whl; ijson-3.5.1-cp310-cp310-win_arm64.whl; ijson-3.5.1-cp311-cp311-macosx_10_9_universal2.whl; ijson-3.5.1-cp311-cp311-macosx_10_9_x86_64.whl; ijson-3.5.1-cp311-cp311-macosx_11_0_arm64.whl; ijson-3.5.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl; ijson-3.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; ijson-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; ijson-3.5.1-cp311-cp311-musllinux_1_2_aarch64.whl; ijson-3.5.1-cp311-cp311-musllinux_1_2_i686.whl

Tags

Capabilities
iterative json parserstreaming json parsinglarge json file processingjson event parsingmemory-efficient json reading
Topics
streaming-jsonmemory-efficientasync-support

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 › “iterative json parser”

  • ijsonijson is an iterative JSON parser that reads JSON from file-like…
  • iterative-telemetrySends anonymized telemetry data from Iterative tools, collecting…
  • ipfnIterative proportional fitting algorithm that adjusts…

Give your agent the search over MCP, or paste the wish link into any chat.

More Python Modules packages

idna Worth it
PyPI · Python Modules · released Jun 2026

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.

BSD-3-Clausepure Python · 3.9+
1.8Bdownloads / mo
setuptools Worth it
PyPI · Python Modules · released Aug 2026

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.

MITpure Python · 3.10+
1.6Bdownloads / mo
PyYAML Worth it
PyPI · Python Modules · released Sep 2025

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.

MITcompiled wheel · 3.8+
1.2Bdownloads / mo
pydantic Worth it
PyPI · Python Modules · released May 2026

Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.

MITpure Python · 3.9+
1.1Bdownloads / mo
annotated-types Worth it
PyPI · Python Modules · released Jul 2026

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…

MITpure Python · 3.10+
871.3Mdownloads / mo
typing-inspection Worth it
PyPI · Python Modules · released Aug 2026

Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.

MITpure Python · 3.10+
783.0Mdownloads / mo

See also jsonslicer · iterable-io · aioitertools · ndjson · python-rapidjson · jsonata-python · jsonseq · json-stream · orjson · iterators