jsonunwrap
jsonunwrap is a simple JSON flattening and normalization library.
>>> import jsonunwrap as ju
>>> url = "https://dummyjson.com/products"
>>> fetchdata = ju.fetch_json(url)
>>> df = ju.unwrap_data(fetchdata)
>>> df.columns
Index(['id', 'title', 'description', 'category', 'price', 'discountPercentage',
'rating', 'stock', 'tags', 'brand', 'sku', 'weight',
'warrantyInformation', 'shippingInformation', 'availabilityStatus',
'returnPolicy', 'minimumOrderQuantity', 'images', 'thumbnail',
'dimensions.width', 'dimensions.height', 'dimensions.depth',
'meta.createdAt', 'meta.updatedAt', 'meta.barcode', 'meta.qrCode',
'rating_reviews', 'comment', 'date', 'reviewerName', 'reviewerEmail'],
dtype='object')
>>> len(df)
3771
jsonunwrap allows you to deeply normalize complex, semi-structured nested JSON data into clean pandas DataFrames extremely easily.
Installing jsonunwrap
jsonunwrap is available on PyPI:
$ python -m pip install jsonunwrap
Supported Features & Best–Practices
jsonunwrap is ready for the data parsing demands of modern web APIs, automation scripts, and data engineering pipelines.
- Recursive Deep-Flattening (Dot-notation formatting for sub-dictionaries)
- Automated List Explosion (Spanning embedded primitive lists safely into unique rows)
- Endpoint Target Binding (Fetch and write stream sequences in a single wrapper)
- Clean API Namespace (Unified module boundaries with zero complex configuration maps)
Quick Usage Reference
Download, Normalize, and Export an API Stream to Disk
import jsonunwrap as ju
target_url = "url"
output_file = "data/normalized_users.csv"
# Fetch, unwrap nested schemas, and generate a local CSV payload
df = ju.json_to_csv(target_url, output_file)
Core API Documentation
The complete package interaction map exposes three primary interfaces:
jsonunwrap.unwrap_data(data)
Recursively flattens an in-memory dictionary or list of records. Returns a parsed pandas.DataFrame.
jsonunwrap.fetch_json(url, **kwargs)
A connection delivery utility utilizing the requests transport subsystem. Passes **kwargs onwards to target handlers.
jsonunwrap.json_to_csv(url, output_path)
High-level workflow coordinator connecting remote schema acquisition loops directly to a structural local CSV export.
Contributions & Testing
To test modifications locally or prepare adjustments, execute using pytest:
\$ git clone https://github.com/njuedominic/json-unwrap
\$ cd jsonunwrap
\(python -m pip install -e .[test]\) pytest
Metadata
Release files for jsonunwrap 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jsonunwrap-0.2.3.tar.gz | 4.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jsonunwrap-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.0 kB
Release files / jsonunwrap-0.2.3.tar.gz
| Download URL | jsonunwrap-0.2.3.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
721defb4dbf3e1ee118e8c4014843b4e8c4070e39628e1165ba6b1d2ecc010cf
|
|
BLAKE2b-256 checksum How to use checksums |
49010249250c345e114fe1026010ada6597696824b703ab51fde0ba59f593d39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / jsonunwrap-0.2.3-py3-none-any.whl
| Download URL | jsonunwrap-0.2.3-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc7fa4f43755215accfd33cdb9acce542beb0bc766fe2a29ce713c25c7c33ab8
|
|
BLAKE2b-256 checksum How to use checksums |
232dce581635f1d52764c5eb8205005ac250d529f4df0d97b9112d079015d158
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|