Support for xpath-like lookups in nested Python dicts.
Project description
# NesDict
[![Build Status](https://travis-ci.org/Kargathia/nesdict.svg?branch=master)](https://travis-ci.org/Kargathia/nesdict)
Intended to add easy-to-use lookup syntax to Python's builtin `dict()`, removing the need to chain `[]` operators or `.get()` calls.
Example:
```python
from nesdict import NesDict
xdata = NesDict({
'path': {
'to': {
'nested': {
'value': 'stuff',
'thing': 'more stuff',
'number': 42
},
'something': 'else'
}
}
})
xdata['/path/to/nested/value'] == 'stuff'
xdata.search('/path/to/nested/*') == [
('/path/to/nested/value', 'stuff'),
('/path/to/nested/thing', 'more stuff'),
('/path/to/nested/number', 42)
]
xdata.values() == ['stuff', 'more stuff', 42, 'else']
```
It also supports setting new values using the same syntax:
```python
xdata['/path/less/traveled/by'] = 'all the difference'
xdata['/path'] == {
'to': {
'nested': {
'value': 'stuff',
'thing': 'more stuff',
'number': 42
},
'something': 'else'
},
'less': {
'traveled': {
'by': 'all the difference'
}
}
}
```
[![Build Status](https://travis-ci.org/Kargathia/nesdict.svg?branch=master)](https://travis-ci.org/Kargathia/nesdict)
Intended to add easy-to-use lookup syntax to Python's builtin `dict()`, removing the need to chain `[]` operators or `.get()` calls.
Example:
```python
from nesdict import NesDict
xdata = NesDict({
'path': {
'to': {
'nested': {
'value': 'stuff',
'thing': 'more stuff',
'number': 42
},
'something': 'else'
}
}
})
xdata['/path/to/nested/value'] == 'stuff'
xdata.search('/path/to/nested/*') == [
('/path/to/nested/value', 'stuff'),
('/path/to/nested/thing', 'more stuff'),
('/path/to/nested/number', 42)
]
xdata.values() == ['stuff', 'more stuff', 42, 'else']
```
It also supports setting new values using the same syntax:
```python
xdata['/path/less/traveled/by'] = 'all the difference'
xdata['/path'] == {
'to': {
'nested': {
'value': 'stuff',
'thing': 'more stuff',
'number': 42
},
'something': 'else'
},
'less': {
'traveled': {
'by': 'all the difference'
}
}
}
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nesdict-0.3.0.tar.gz
(11.8 kB
view details)
File details
Details for the file nesdict-0.3.0.tar.gz
.
File metadata
- Download URL: nesdict-0.3.0.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7aebb458a6c14b528c54d15925fa4428445404ccd860ec291645859bcca5f32a |
|
MD5 | 077bd187eb885e6b2b7ca9323d0d00d0 |
|
BLAKE2b-256 | 90a731510e46de74f16aa942fae30f4614c08113d5e8eff3097c3f3ef5eb37f6 |