91 lines
1.7 KiB
ReStructuredText
91 lines
1.7 KiB
ReStructuredText
nested_lookup
|
|
#############
|
|
|
|
.. image:: https://img.shields.io/badge/pypi-0.1.3-green.svg
|
|
:target: https://pypi.python.org/pypi/nested-lookup
|
|
|
|
A small Python library which enables key lookups on deeply nested documents.
|
|
|
|
Documents may be built out of dictionaries (dicts) and/or lists.
|
|
|
|
Make working with JSON, YAML, and XML document responses fun again!
|
|
|
|
.. contents::
|
|
|
|
|
|
install
|
|
========
|
|
|
|
install from pypi using pip::
|
|
|
|
pip install nested-lookup
|
|
|
|
or easy_install::
|
|
|
|
easy_install nested-lookup
|
|
|
|
or install from source using::
|
|
|
|
git clone https://github.com/russellballestrini/nested-lookup.git
|
|
cd nested-lookup
|
|
pip install .
|
|
|
|
tutorial
|
|
========
|
|
|
|
.. code-block:: python
|
|
|
|
>>> from nested_lookup import nested_lookup
|
|
|
|
>>> document = [ { 'taco' : 42 } , { 'salsa' : [ { 'burrito' : { 'taco' : 69 } } ] } ]
|
|
|
|
>>> print(nested_lookup('taco', document))
|
|
[42, 69]
|
|
|
|
|
|
wild
|
|
========
|
|
|
|
We also have a `wild` mode that treats the given `key` as a case insensitive
|
|
substring of all the keys in the document and returns any values which match.
|
|
|
|
For example:
|
|
|
|
.. code-block:: python
|
|
|
|
from nested_lookup import nested_lookup
|
|
|
|
my_document = {
|
|
'name' : 'Russell Ballestrini',
|
|
'email_address' : 'test1@example.com',
|
|
'other' : {
|
|
'secondary_email' : 'test2@example.com',
|
|
'EMAIL_RECOVERY' : 'test3@example.com',
|
|
},
|
|
},
|
|
|
|
results = nested_lookup(
|
|
key = 'mail',
|
|
document = my_document
|
|
wild = True,
|
|
)
|
|
|
|
print(results)
|
|
['test1@example.com', 'test2@example.com', 'test3@example.com']
|
|
|
|
|
|
misc
|
|
========
|
|
|
|
:license:
|
|
* Public Domain
|
|
|
|
:authors:
|
|
* Russell Ballestrini
|
|
* Douglas Miranda
|
|
|
|
:web:
|
|
* http://russell.ballestrini.net
|
|
* http://douglasmiranda.com
|
|
* https://gist.github.com/douglasmiranda/5127251
|
|
|