An alternative approach is to use jsonpath; for python, the jsonpath-ng implementation is useful but could use more friendly documentation.
it contains XPath-style selectors and the ability to directly modify matched nodes in a Dict, including filtering (as indirect deletion) and upserts; the only thing that it's missing is sufficient addressability with regards to Lists (arrays), so I see myself building a similar 'op' processing but using jsonpath instead of jsonpatch language.
add one to the pile i guess