jpath

Access nested dicts and lists using JSON-like path notation.

Access nested dicts and lists using JSON-like path notation.

Note that this code is written for python 3.

You can download this module from pypi at http://pypi.python.org/pypi/jpath

Syntax

You can just write the names of components in your path like you would in javascript:

    foo.bar.baz

To access arrays or names with spaces in them, use the '[]' notation. You can use negative indices with arrays to count from the end.

    ["foo"]["bar"]["baz"]

    array[-1].attr

    [3]

You can use the wildcard character '*' to iterate over all elements:

    foo.*.baz
    ["foo"][*]["baz"]

This may return more or less than a single element. Use get to get the first one, and get_all to get a list of all possibilities. If you want to skip any number of elements in path, use two dots '..':

    foo..baz

You can slice the arrays just like in python:

    array[1:-1:2]

Finally, you can filter the elements:

    foo(bar.baz=true)
    foo.bar(baz>0).baz
    foo(bar="yawn").bar

At the moment only =, <, >, >=, <= and != operators are available, and you can only use them with strings, integers and boolean values.