jq for pythonista
Project description
jq is too difficult
jq is too difficult, at least for me.
For example, extracting key-name when use is true only, from below JSON data.
{
"apps": {
"foo": {
"use": true
},
"bar": {
"use": true
},
"boo": {
"use": true
},
"bee": {
"use": false
}
}
}
What is jq’s answer? (taking over 30 minutes, my past challenges).
$ cat data.json | jq '.apps | . as $$o | keys | map(select($$o[.].use))'
[
"bar",
"boo",
"foo"
]
If you have python’s knowledge, this is tiny oneliner, isn’t it?
$ cat data.json | jqfpy '[k for k, opts in get("apps").items() if opts["use"]]'
[
"foo",
"bar",
"boo"
]
(get() is special function, like a json.load(sys.stdin).get.)
install
pip install jqfpy
how to use
describe syntax
todo.
tutorial
this is jqfpy version of jq’s Tutorial.
alias jsonDATA="curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5'"
# jq.
jsonDATA | jq '.'
# jqfpy.
jsonDATA | jqfpy 'get()'
# jq.
jsonDATA | jq '.[0]'
# jqfpy.
jsonDATA | jqfpy 'get()[0]'
# jq.
jsonDATA | jq '.[0] | {message: .commit.message, name: .commit.committer.name}'
# jqfpy.
jsonDATA | jqfpy 'd = get()[0]; {"message": get("commit/message", d), "name": get("commit/committer/name", d)}'
# or
jsonDATA | jqfpy '{"message": get("0/commit/message"), "name": get("0/commit/committer/name")}'
# jq.
jsonDATA | jq '.[] | {message: .commit.message, name: .commit.committer.name}'
# jqfpy.
jsonDATA | jqfpy --squash 'L = get(); [{"message": get("commit/message", d), "name": get("commit/committer/name", d)} for d in L]'
# jq.
jsonDATA | jq '[.[] | {message: .commit.message, name: .commit.committer.name, parents: [.parents[].html_url]}]'
# jqfpy.
jsonDATA | 'L = get(); [{"message": get("commit/message", d), "name": get("commit/committer/name", d), "parents": [p["html_url"] for p in d["parents"]]} for d in L]'
0.1.0
adding some options
nocode is same as jq . (js == jq .)
showing pycode when error is raised
0.0.1
first release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jqfpy-0.1.0.tar.gz
(3.9 kB
view details)
Built Distribution
File details
Details for the file jqfpy-0.1.0.tar.gz
.
File metadata
- Download URL: jqfpy-0.1.0.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3f97d807ef5bdbe21d60d20c73c7019da8086293a5932c3e6a8a987ed638e14 |
|
MD5 | b8cd1561fd573c75cdf3e980e669af5a |
|
BLAKE2b-256 | aae8782dff26268cde975824e80ce5b5912eb2dcfd4fc9250b2ca57593b06fc8 |
File details
Details for the file jqfpy-0.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: jqfpy-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a25220bbc4137bec358db1fb92c06b5a5e9afd4879952086525b5551c780c49b |
|
MD5 | e4623e226eb29bbfaa23bb5a952245e8 |
|
BLAKE2b-256 | 02c8c36b1725f9eafdfcd13ed3c0c72479ab6d4e3830643cee50a76074869fc1 |