Skip to main content

Scout, explore, infer, and analyze JSON structure and navigate data safely with intuitive exploration tools.

Project description

JSON Anatomy

Documentation Python License

Scout, explore, infer, and analyze JSON structure and navigate data safely with intuitive exploration tools.

JSON Anatomy provides a robust suite of tools designed for developers and data professionals who need to introspect, analyze, and safely navigate complex JSON data structures. Whether you're working with APIs, configuration files, or large datasets, JSON Anatomy offers both low-level utilities and high-level abstractions to make JSON exploration intuitive and error-free.

✨ Key Features

  • 🔍 Structural Analysis: Automatic schema discovery and hierarchy inspection
  • 🛡️ Safe Navigation: Exception-free access with monadic-style Maybe wrapper
  • 🔧 Comprehensive Utilities: File operations, robust XML/HTML parsing (powered by lxml), and unified interface
  • 📊 Enterprise Ready: Type safety, performance optimization, and comprehensive documentation

🚀 Quick Start

Installation

pip install json-anatomy

Basic Usage

import jsonanatomy as ja

# Sample data
data = {
    "users": [
        {"name": "Alice", "age": 30, "email": "alice@example.com"},
        {"name": "Bob", "age": 25},
        {"name": "Charlie", "age": 35, "email": "charlie@example.com"}
    ],
    "metadata": {"version": "1.0", "created": "2024-01-01"}
}

# Safe navigation with automatic error handling
explorer = ja.Xplore(data)
user_name = explorer['users'][0]['name'].value()  # Returns: "Alice"
missing_field = explorer['users'][1]['email'].value()  # Returns: None (no exception)

# Structural analysis
explore = ja.Explore(data['users'])
field_frequency = explore.field_counts()
print(field_frequency)  # {'name': 3, 'age': 3, 'email': 2}

# File operations
json_files = ja.get_json_file_paths('/path/to/data', '*.json')
for file_path in json_files:
    data = ja.read_json_file(file_path)
    explorer = ja.Xplore(data)
    # Process safely...

📚 Documentation

🏗️ Core Components

  • Explore: Lightweight structural analysis and schema discovery
  • Maybe: Monadic wrapper for safe, chainable data access
  • SimpleXML: Robust XML/HTML-to-dictionary conversion (powered by lxml) with automatic handling of malformed markup
  • Xplore: Unified facade combining all functionality

🎯 Use Cases

  • API Response Analysis: Schema evolution tracking and data validation
  • Configuration Management: Safe navigation of complex configuration hierarchies
  • Data Pipeline Processing: ETL operations with robust error handling
  • Research and Analysis: Dataset exploration and statistical analysis

📄 License

JSON Anatomy is licensed under the Apache License 2.0.
© 2025 Chathura Jayalath. See the NOTICE file for more details.


Note: This package was previously named json-scout. See the Migration Guide if you're upgrading.

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

json_anatomy-0.2.0.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

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

json_anatomy-0.2.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file json_anatomy-0.2.0.tar.gz.

File metadata

  • Download URL: json_anatomy-0.2.0.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.24

File hashes

Hashes for json_anatomy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3e3ebdc47f6e8314cbe26f1141a5b3358f33927037016ee27abfb3513226c832
MD5 5f1f03fdf788ab66a6fd350ad47cb493
BLAKE2b-256 8b1e7e50f3865b1b4ccfd32bcde48bdd84e22ccb4f241fc59825604274113874

See more details on using hashes here.

File details

Details for the file json_anatomy-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: json_anatomy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.24

File hashes

Hashes for json_anatomy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e395f0087c22d8802b182e641fea717435e1ac312a910d96a3352d07e5fbf90d
MD5 bae1155c726012ce67179ac5127910b0
BLAKE2b-256 ab400a4203e7a870b73ff2013d3dd75b3e83762dffe40329890c775cc1720b2b

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