JSONPath
yamlpath
JSONPath | yamlpath | |
---|---|---|
1 | 9 | |
927 | 109 | |
1.5% | - | |
6.7 | 4.8 | |
9 days ago | 3 months ago | |
JavaScript | Python | |
GNU General Public License v3.0 or later | ISC License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
JSONPath
-
jq 1.7 Released
Another great alternative is JSONPath[1] which unfortunately not as widely supported and known despite being brilliant!
It's inspired by XPath so it's very familiar instead of a complete new DSL. The killer feature imo is the recursive key lookup so you can write `people..address` and it'll find all "address" keys that descend from "people" anywhere in the JSON. It's by far my favorite parsing language for JSON and I wrote an introduction blog on how to use it in JSON dataset parsing [2] :)
1 - https://github.com/JSONPath-Plus/JSONPath
2 - https://scrapfly.io/blog/parse-json-jsonpath-python/
yamlpath
-
jq 1.7 Released
A couple more alternatives:
https://github.com/kellyjonbrazil/jello
https://github.com/wwkimball/yamlpath
-
The yaml document from hell
I used the official reference implementation to make a CLI converter between NestedText and TOML, JSON, and YAML. When generating one of these formats, you can use yamlpath queries to concisely but explicitly apply supported types to data elements.
-
The YAML Document from Hell
I'm a huge fan of NestedText, especially as there is no escaping needed ever.
If you ever want to use it as a pre-format to generate either TOML, JSON, or YAML, I used the official reference implementation to make a CLI converter between them and NestedText.
When generating one of these formats, you can use yamlpath queries to concisely but explicitly apply supported types to data elements.
- My CLI converter: https://github.com/AndydeCleyre/nestedtextto
- yamlpath info: https://github.com/wwkimball/yamlpath/wiki/Search-Expression...
-
Replace Specific Lines in a JSON file
Not what you're asking, but if you wanted to do this with yamlpath:
-
jq help: is it possible to replace a key-value in one json file using the data from another json file?
You may want to take a look at yamlpath for this. If I remember when I'm at a computer I'll try to post more.
-
An introduction to the magic of jq - Understanding the basics of jq with a realistic example
I'm no expert in any of these tools, but here are some yamlpath and jello examples to match:
-
Top python libraries/ frameworks that you suggest every one
yamlpath
-
jq error out when parse multiple lines without \n
FWIW, yamlpath (tested with 3.6.4) seems to strip and forgive those characters:
- List of JSON tools for command line
What are some alternatives?
gojq - Pure Go implementation of jq
jiq - jid on jq - interactive JSON query tool using jq expressions
jet - CLI to transform between JSON, EDN, YAML and Transit using Clojure
jinsi - JSON/YAML homoiconic templating language
fq - jq for binary formats - tool, language and decoders for working with binary and text formats
taskipy - the complementary task runner for python
visidata - A terminal spreadsheet multitool for discovering and arranging data
pxi - 🧚 pxi (pixie) is a small, fast, and magical command-line data processor similar to jq, mlr, and awk.
rsl - reserialise: lossy but versatile conversion between data serialisation formats
nvim-jqx - Populate the quickfix with json entries
jmespath.py - JMESPath is a query language for JSON.
Textrude - Code generation from YAML/JSON/CSV models via SCRIBAN templates