55 lines
995 B
Python
55 lines
995 B
Python
#!/usr/bin/env python3
|
|
|
|
"""
|
|
jmes path testing
|
|
"""
|
|
|
|
from corelibs.debug_handling.dump_data import dump_data
|
|
from corelibs.json_handling.jmespath_helper import jmespath_search
|
|
|
|
|
|
def main() -> None:
|
|
"""
|
|
Comment
|
|
"""
|
|
__set = {
|
|
'a': 'b',
|
|
'foobar': [1, 2, 'a'],
|
|
'bar': {
|
|
'a': 1,
|
|
'b': 'c'
|
|
},
|
|
'baz': [
|
|
{
|
|
'aa': 1,
|
|
'ab': 'cc'
|
|
},
|
|
{
|
|
'ba': 2,
|
|
'bb': 'dd'
|
|
},
|
|
],
|
|
'foo': {
|
|
'a': [1, 2, 3],
|
|
'b': ['a', 'b', 'c']
|
|
}
|
|
}
|
|
|
|
__get = [
|
|
'a',
|
|
'bar.a',
|
|
'foo.a',
|
|
'baz[].aa',
|
|
"[?\"c\" && contains(\"c\", 'b')]",
|
|
"[?contains(\"c\", 'b')]",
|
|
]
|
|
for __jmespath in __get:
|
|
result = jmespath_search(__set, __jmespath)
|
|
print(f"GET {__jmespath}: {dump_data(result)}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|
|
# __END__
|