May 18th, 2016
It bothers me that I have processed JSON manually and that there are standard tools like XPath and XSLT for XML. There must be better tools available for JSON also. Here are the ones I found for Python and some observations about them.
ObjectPath
- Powerful query language
- Reminds me of write once regexps
- Focused more on command line usage than module in the tutorial
- Doesn't support Python 3
DPath
- Simple API. Maybe too simple.
- Good examples in README
- No other dependencies
- Supports Python 3
Jsonpath-rw
- Rewrite of older jsonpath library which is a port from Javascript version
- Some minor dependencies
- Supports Python 3
Jq
- Bindings for the venerable command line tool
- Compiles jq from source at install
- Supports Python 3
If my requirements are simple I would probably go for dpath or jsonpath-rw (in that order). If I need some heavy lifting I would go with jq. ObjectPath has the nicest web pages but the lack of Python 3 support is a show-stopper nowadays. There doesn't seem to be a clear winner at the moment (like Requests for http client or SQLAlchemy for ORM). Your mileage may vary.