streamingjson
A streamlined, user-friendly JSON streaming preprocessor, crafted in Python.
Decision gist · record as of 2026-08-14
Yes, if you are building a streaming application that consumes JSON from LLMs or other incremental sources and need to parse partial results. The library is lightweight, has no dependencies, and solves a specific real problem. However, maintenance is dormant (last release 693 days ago), so evaluate whether you are comfortable adopting a package that may not receive updates. No known vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.7 or later.
- Low friction: pure Python wheel with no runtime dependencies.
- Maintenance is dormant—last release was 693 days ago, though the repository remains active with 114 stars and a recent commit in September 2024.
License · maintenance · safety
permissive license (permissive) — MIT license (permissive) imposes no restrictions on use, modification, or distribution in commercial or private projects.
last release 2024-09-20 (693 days) · last repo commit 2024-09-20 · 114 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 787,992 downloads/mo, #5,058 on PyPI
Alternatives
Verify before relying
pip install streamingjson
import streamingjson
lexer = streamingjson.Lexer()
lexer.append_string('{"a":')
print(lexer.complete_json()) # outputs: {"a":null}- Whether the library handles all JSON edge cases (nested structures, escaped characters, Unicode) correctly in production scenarios.
- Performance characteristics when processing very large or deeply nested JSON streams.
- Compatibility with popular JSON libraries (json, ujson, orjson) when used as a preprocessor.
What it is and what it does
streamingjson is a JSON preprocessing library that transforms incomplete or fragmented JSON strings into valid, parseable JSON by intelligently closing open structures and filling missing values. It is designed for scenarios where JSON is generated incrementally—particularly from LLM outputs—and needs to be parsed before the full response is available. The library maintains a lexer state across multiple append operations, allowing you to feed JSON fragments one piece at a time and request a completed, valid JSON string at any point.
The primary use case is reducing latency in streaming applications: instead of waiting for a complete JSON response, you can parse and display partial results immediately. The library handles edge cases like incomplete Unicode escapes, trailing commas, and mid-value stream interruptions by completing them to valid JSON. It has no external dependencies and installs as a pure Python wheel, making it lightweight and easy to integrate into existing projects.
Use it for
- Display LLM-generated JSON responses to users in real-time without waiting for the full output to complete.
- Preprocess incomplete JSON from streaming APIs before passing to standard json library for parsing.
- Build chat interfaces that show structured data (tables, lists) as it arrives from a language model.
- Handle JSON fragments from network streams that may be interrupted or arrive out of order.
- Validate and complete partial JSON configuration or data files during incremental loading.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building a streaming application that consumes JSON from LLMs or other incremental sources and need to parse partial results.
The library is lightweight, has no dependencies, and solves a specific real problem. However, maintenance is dormant (last release 693 days ago), so evaluate whether you are comfortable adopting a package that may not receive updates. No known vulnerabilities.
Install
streamingjson on PyPI
Before you install
Low friction: pure Python wheel with no runtime dependencies. Maintenance is dormant—last release was 693 days ago, though the repository remains active with 114 stars and a recent commit in September 2024.
Requires Python 3.7 or later.
License in practice
MIT license (permissive) imposes no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install streamingjson
import streamingjson
lexer = streamingjson.Lexer()
lexer.append_string('{"a":')
print(lexer.complete_json()) # outputs: {"a":null}
Verify before relying
- Whether the library handles all JSON edge cases (nested structures, escaped characters, Unicode) correctly in production scenarios.
- Performance characteristics when processing very large or deeply nested JSON streams.
- Compatibility with popular JSON libraries (json, ujson, orjson) when used as a preprocessor.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Dormant 693 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 787,992 / month, #5,058 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: streamingjson-0.0.5-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 › “incomplete json completion”
- streamingjsonCompletes partial JSON strings into syntactically valid JSON by…
- partial-json-parserParses incomplete JSON strings generated by LLM streaming, extracting…
- partialjsonParses incomplete or malformed JSON strings into valid Python…
Give your agent the search over MCP, or paste the wish link into any chat.
More Text Processing packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyparsing provides a library for building text parsers directly in Python code using composable grammar classes, handling quoted strings, whitespace variation, and embedded comments without regex or lex/yacc.
Install it if you need to parse text or define grammars programmatically.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
RapidFuzz provides fast fuzzy string matching using Levenshtein Distance and related metrics, implemented mostly in C++ with Python bindings for rapid similarity scoring and approximate string matching.
Install it if you need fuzzy string matching; it's a solid replacement for FuzzyWuzzy with better licensing and performance.
tinycss2 parses CSS strings into token and block objects, and generates CSS strings from those objects, following the CSS Syntax Level 3 specification without enforcing specific properties or values.
Install it if your project requires CSS tokenization or syntax manipulation.
See also partial-json-parser · partialjson · langdiff · jsonslicer · json-stream · quixstreams · streamlink · transformers-stream-generator · json-repair · base64io