Skip to content

For easier traversing and exploration of JSON structures

License

Notifications You must be signed in to change notification settings

buhanec/ez-json-traverse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ez-json-traverse Build Status Supported Python Version License

For easier traversing and exploration of JSON structures.

Provides a traversable sequence EZJL, traversable mapping EZJD and convenience methods like as_traversable.

Starting off

$ pip install ez-json-traverse

followed by

from ezjt import as_traversable

Dict stuff

d = {
    'a': {'name': 'Jane', 'age': {'unit': 'year', 'value': 12}},
    'b': {'name': 'John', 'age': {'unit': 'year', 'value': 14}},
    'c': {'name': 'Jill', 'age': {'unit': 'year', 'value': 10}}
}

t = as_traversable(d, sep='.', map_char='^')  # EZJD

# Normal key access
t['a']  # EZJD of {'name': 'Jane', 'age': {'unit': 'year', 'value': 12}}

# Path key access
t['a.name']  # 'Jane'

# Mapping across values
t['^.age.value']  # EZJD of [12, 14, 10]

List stuff

l = [[0, [1, 2]], [1, [2, 3]], [2, [3, 4]]]

t = as_traversable(l, sep='.', map_char='^')  # EZJL

# Normal key access
t[0]  # EZJL of [0, [1, 2]]
t['0']  # EZJL of [0, [1, 2]]

# Path key access
t['0.1.0']  # 1

# Mapping across values
t[':^.1.0']  # EZJL of [1, 2, 3]
t['1:-1^.1.0']  # EZJL of [2] 

Other conveniences

t = as_traversable(..., sep='.', map_char='^')  # EZJL

t.parent  # Parent container
t.root  # Root container
t.path  # Path from root container to current traversable
t.key  # Final key or index of current traversable

About

For easier traversing and exploration of JSON structures

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages