jsonyx.select_nodes

jsonyx.select_nodes(nodes, query, *, allow=NOTHING, allow_slice=False, relative=False)[source]

Select nodes from a node or a list of nodes.

Added in version 2.0.

Changed in version 2.4: Removed use_decimal.

Parameters:
  • nodes (_Node | list[_Node]) – a node or a list of nodes

  • query (str) – an JSON select query

  • allow (Container[str], default: NOTHING) – the JSON deviations from jsonyx.allow

  • allow_slice (bool, default: False) – allow slice

  • relative (bool, default: False) – query must start with "@" instead of "$"

Raises:
Returns:

list[_Node] – the selected list of nodes

Example:
>>> import jsonyx as json
>>> obj = [1, 2, 3, 4, 5, 6]
>>> root = [obj]
>>> node = root, 0  # pointer to obj
>>> for target, key in json.select_nodes(node, "$[@ > 3]"):
...     target[key] = None
...
>>> root[0]
[1, 2, 3, None, None, None]

Tip

Use jsonyx.Manipulator directly for better performance.