Observed since 21 Oct, 10:40 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Extract structured data from any AI. Fast. Simple. Reliable.
Extract structured data from any AI response. Fast. Simple. Reliable.
ai-extract is a fast, lightweight Python library for extracting JSON from AI outputs. It handles markdown fences, surrounding text, and multiple JSON blocks.
orjson for 10x faster JSON parsingpip install ai-extract
from ai_extract import extract_json
# Extract from messy AI output
text = """
Here's the JSON you requested:
```json
{"name": "John", "age": 30}
Hope this helps! """
data = extract_json(text) print(data) # {'name': 'John', 'age': 30}
## Usage Examples
### Basic Extraction
```python
from ai_extract import extract_json
# Pure JSON
data = extract_json('{"key": "value"}')
# JSON in text
data = extract_json('The result is: {"success": true}')
# JSON in markdown fence
data = extract_json('```json\n{"data": [1,2,3]}\n```')
# Get first JSON (default)
data = extract_json('{"a": 1} and {"b": 2}')
# Returns: {'a': 1}
# Get all JSON blocks
data = extract_json('{"a": 1} and {"b": 2}', strategy="all")
# Returns: [{'a': 1}, {'b': 2}]
from ai_extract import extract_json, ExtractError
# Raise exception (default)
try:
data = extract_json("no json here")
except ExtractError as e:
print(f"Error: {e.message}")
print(f"Type: {e.error_type}")
# Return None instead
data = extract_json("no json here", raise_on_error=False)
# Returns: None
# From argument
ai-extract '{"key": "value"}'
# From file
ai-extract -f response.txt
# From stdin
echo '{"key": "value"}' | ai-extract
# Pretty print
ai-extract -f response.txt --pretty
# Get all JSON blocks
ai-extract -f response.txt --all
# Show metadata
ai-extract -f response.txt --verbose
extract_json(text, *, strategy="first", raise_on_error=True)Extract JSON from text.
Parameters:
text (str): Text containing JSONstrategy (str): How to handle multiple JSON blocks
"first": Return first valid JSON (default)"all": Return list of all JSON blocksraise_on_error (bool): Raise ExtractError on failure (default: True)Returns: Parsed JSON data, or list if strategy="all", or None if raise_on_error=False
The library tries multiple strategies in order:
MIT License - see LICENSE for details.
Rahul Vishwakarma (@rvv-karma)
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.0.7 | 2 Mar 2026 | 9 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 10:40 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:ddb159fa4e428adad19ea58c87631d75c23dc34956e944410d97f8860d1d2f3a