Skip to main content

A library to read and manipulate nested data structures, particularly ones read from JSON files

Project description

DataDelve

PyPI version Coverage Status Build Status

Working with complex nested data can be tedious. If you have to access any objects that are four layers deep in a JSON response from a web service, you quickly tire of writing square brackets. Much better would be to have a simple way of accessing data through a simple syntax. jsonpointer is a perfect match, it looks just like paths through a filesystem. Applying this information to the data structures makes it easy and convenient.

Usage

from datadelve import DataDelver

data = ["your annoying data here"]
delver = DataDelver(data)
element = delver.get("/dict/keys/and/1/list/index")
subset = delver.cd("/particular/key/to/focus/on")
delver.set("/path/to/change", "new")
delver.delete("/bad")

Support

This package grew around a series of JSON files, so that is the primary focus. It therefore expects data structures with dicts and lists. As the implementation is turned over to jsonpointer, it will work for anything that implements __getitem__(str) or that is registered as a collections.abc.Sequence and implements __getitem__(int).

Raw data, loaded from whatever source, is accepted. So are JSON files. These have the added benefit of being flyweight instances, so all views on the same file reference the same object. This way none of them can get out of sync and make writes indeterminate as to what updates have actually been made. As YAML isn't in the standard library, I've split support for that into a separate project: datadelve_yaml. YAML files are treated the same as JSON.

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

datadelve-0.8.4.tar.gz (14.0 kB view hashes)

Uploaded Source

Built Distribution

datadelve-0.8.4-py3-none-any.whl (14.6 kB view hashes)

Uploaded Python 3

Supported by

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