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 worload
  • 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.1.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.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jsonxplode-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 b44a06e58c46ec1a850b54599ccc42382095b78afb0a57d4c4191b930ba63c99
MD5 605910e72e894ccbab3bdd319023315a
BLAKE2b-256 aad55afbd025e90aafd79062b48502b33299302ca99fa54e5abdc056bec2b861

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jsonxplode-1.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 64b29e2819ac9110dcd874122482f28529b822f9234d0943a2f7d2e6724f23ae
MD5 3f75315258484d941df909f7c37485e9
BLAKE2b-256 dc8a473cff7681dbc5a0503ae469030d1affca51359991f8f64d0e007954eb7d

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