Support for xpath-like lookups in nested Python dicts.
Project description
# NesDict
[![Build Status](https://travis-ci.org/steersbob/nesdict.svg?branch=master)](https://travis-ci.org/steersbob/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/steersbob/nesdict.svg?branch=master)](https://travis-ci.org/steersbob/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.1.dev7.tar.gz
(10.5 kB
view hashes)