Skip to main content

Efficient JSON flattening for complex nested structures

Project description

jsonxplode

Efficient JSON flattening for complex nested structures

Python Version License Dependencies

jsonxplode converts nested JSON structures into flat tabular format while preserving all data, including complex nested arrays and objects with arbitrary depth.

Installation

pip install jsonxplode

Usage

from jsonxplode import flatten

# Handles any JSON structure
data = {
    "users": [
        {"profile": {"name": "John", "settings": {"theme": "dark"}, "location": ["city1", "city2"]}},
        {"profile": {"name": "Jane", "settings": {"theme": "light"}}}
    ]
}

flattened_data = flatten(data)

Returns:

[
    {'users.profile.name': 'John', 'users.profile.settings.theme': 'dark', 'user.profile.location': 'city1'},
    {'users.profile.name': 'John', 'users.profile.settings.theme': 'dark', 'user.profile.location': 'city2'},
    {'users.profile.name': 'Jane', 'users.profile.settings.theme': 'light'}
]

DataFrame Output (Optional)

from jsonxplode import to_dataframe

# Requires pandas to be installed separately
df = to_dataframe(data)

Note: to_dataframe requires pandas (pip install pandas) but the core flatten function has zero dependencies.

Features

  • Arbitrary nesting depth - handles deeply nested objects and arrays
  • Conflict resolution - automatically manages key path conflicts
  • Memory efficient - processes large datasets with minimal overhead
  • Zero dependencies - pure Python implementation (core function)
  • Array expansion - properly handles nested arrays with row duplication

Performance

  • 7,900 rows with 23 columns processed in 0.146 seconds
  • Memory usage: ~16MB for above mentioned workload
  • Consistent performance across varying data structures

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsonxplode-1.0.2.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jsonxplode-1.0.2-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file jsonxplode-1.0.2.tar.gz.

File metadata

  • Download URL: jsonxplode-1.0.2.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for jsonxplode-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c7e0ebf73224ef9adeef20a61838f90bc99110332a33d00bd8165538e0d501af
MD5 819e7f687593a3930e7bbac4b72e24af
BLAKE2b-256 c7a4791bda26cfb97b29018fa42ccc5e1ff5e1177c26ea0cf2a99fa87f5237ae

See more details on using hashes here.

File details

Details for the file jsonxplode-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: jsonxplode-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for jsonxplode-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e701f93bf9c59f8eb73b80effe37962bda1d57668e635ad770f3af0f558c28c8
MD5 3b914f89db020ca21d011a963b580ae7
BLAKE2b-256 697d55d0fa68d4ee79a9fa6f2ca797f866e829057616f560d54b7941c4cad54f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page