https://github.com/bitnom/traversy
Fast data traversal & manipulation tools for Python.
https://github.com/bitnom/traversy
Last synced: about 1 year ago
JSON representation
Fast data traversal & manipulation tools for Python.
- Host: GitHub
- URL: https://github.com/bitnom/traversy
- Owner: bitnom
- License: mit
- Created: 2020-11-07T11:28:26.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-11-22T04:58:50.000Z (over 5 years ago)
- Last Synced: 2025-03-24T07:43:20.158Z (over 1 year ago)
- Language: Python
- Size: 414 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# traversy
Fast data traversal & manipulation tools for Python. Check out the
[documentation](https://tensortom.github.io/traversy/).
[](https://gitHub.com/TensorTom/traversy/graphs/commit-activity)
[](https://pypi.python.org/pypi/traversy/)
[](https://pypi.python.org/pypi/traversy/)
## Quick-Start
```python
from traversy import traverse
import json
jo = json.loads("""{
"2019": {
"uat": {
"pkey": true,
"user": "testval",
"testkey": true,
"mylist": [
{
"foo": "bar",
"foo2": "bar2"
},
{
"baz": "milk",
"bar": "foo"
}
]
},
"dev": {
"pkey": true,
"testval": "testval",
"testval2": true
},
"test1": [1, 2, "testval"],
"test2": [{"one": "foo", "two": "bar", "three": "testval"}]
}
}""")
def is_eq(key, val, opath, query): # Use of a filter func is optional.
return val == query
for node in traverse(jo, is_eq, query="milk"):
print("Found", node.key, ':', node.value) # baz : milk
print("Full path access:", jo[node.path_str]) # "2019.uat.mylist.1.baz"
```
For each iteration, traverse() returns a dict or data object of...
```
{'key', 'value', 'node_path', 'path_str', 'filter_func',
'filter_args': (data, kwargs), 'parent_node', 'output_formatter'}
```
For more information on these non-built-in data structure (Which are optional
to use), check out [mo-dots](https://pypi.org/project/mo-dots/) and
[dotty_dict](https://pypi.org/project/dotty-dict/).
### Changelog
- **11/15/2020 - 0.1.32** : Fix for pypi.
- **11/15/2020 - 0.1.3** : Refactored & added more utility methods. Added docs.
- **11/13/2020 - 0.1.2** : Doc correction.
- **11/13/2020 - 0.1.1** : Deprecated `set_output_format()` and made package compatible with both Python 2 and Python 3.