blob: eac76245a969b3327eee72b7ddbf26d52fec23f3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#!/bin/sh
[ "$1" = python3-jsonpath-ng ] || exit 0
python3 - << 'EOF'
from jsonpath_ng import parse
from jsonpath_ng.ext import parse as ext_parse
data = {
"store": {
"books": [
{"title": "A", "price": 10},
{"title": "B", "price": 20},
{"title": "C", "price": 15},
]
}
}
# Basic path
expr = parse("store.books[*].title")
matches = [m.value for m in expr.find(data)]
assert matches == ["A", "B", "C"], f"Unexpected: {matches}"
# Indexed access
expr2 = parse("store.books[1].price")
assert expr2.find(data)[0].value == 20
# Filter expression (ext parser)
expr3 = ext_parse("store.books[?price > 12].title")
titles = [m.value for m in expr3.find(data)]
assert set(titles) == {"B", "C"}, f"Unexpected: {titles}"
EOF
|