[](https://pypi.org/project/jellex/)

# Jello Explorer
TUI to filter JSON and JSON Lines data with Python syntax
Here is a video of `jellex` in action: https://youtu.be/-oR0yZ7JaO8
Jello Explorer (`jellex`) is a Text User Interface program to interactively process JSON and JSON Lines at the console using Python syntax. `jellex` uses [`jello`](https://github.com/kellyjonbrazil/jello) on the back-end to run the queries.
## Install
Jello Explorer can be installed via `pip`:
[](https://pypi.org/project/jellex/)
```bash
pip install jellex
```
## Usage
```
jellex FILE
```
Examples:
```
$ jellex file.json
```
or with process substitution:
```
$ jellex <(git log | jc --git-log)
```
An Editor window displays on the left and a Viewer window displays on the right. A Schema view can be toggled on the right and a Status window displays on the bottom.
The Editor window uses standard EMACS key bindings and allows you to type your Python syntax query. `_` is the loaded JSON from the file presented as a python dict or list of dicts. You can use dot notation or traditional python bracket notation to access key names.
As you modify your query, the Viewer and Schema windows will update with the latest results. If there are any errors in the query (syntax errors, etc.), they will be displayed in the Status window at the bottom.
Tab completions are available for current context list indicies and key names.
Use `CTRL-\` to toggle the focus between the Editor, Viewer, and Schema windows.
Use `CTRL-S` to toggle the Schema window.
Use `CTRL-Q` or `CTRL-C`to exit.
> Note: Reserved key names that cannot be accessed using dot notation can be accessed via standard python dictionary notation. (e.g. `_.foo["get"]` instead of `_.foo.get`)
Here is an example after running `jellex twitterdata.json` and modifying the query:

When you exit (`CTRL-Q` or `CTRL-C`), you will be presented with your `jello` filter:
```
$ jellex twitterdata.json
Your query:
jello '_[0].user'
$
```
Raw data
{
"_id": null,
"home_page": "https://github.com/kellyjonbrazil/jellex",
"name": "jellex",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "Kelly Brazil",
"author_email": "kellyjonbrazil@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/bc/56/a806af14791940c847f334e1407a0874b1860b6cbe05f92ce9e058cc1648/jellex-0.5.7.tar.gz",
"platform": null,
"description": "[](https://pypi.org/project/jellex/)\n\n\n\n# Jello Explorer\nTUI to filter JSON and JSON Lines data with Python syntax\n\nHere is a video of `jellex` in action: https://youtu.be/-oR0yZ7JaO8\n\nJello Explorer (`jellex`) is a Text User Interface program to interactively process JSON and JSON Lines at the console using Python syntax. `jellex` uses [`jello`](https://github.com/kellyjonbrazil/jello) on the back-end to run the queries.\n\n## Install\nJello Explorer can be installed via `pip`:\n\n[](https://pypi.org/project/jellex/)\n```bash\npip install jellex\n```\n\n## Usage\n```\njellex FILE\n```\n\nExamples:\n```\n$ jellex file.json\n```\n\nor with process substitution:\n```\n$ jellex <(git log | jc --git-log)\n```\n\nAn Editor window displays on the left and a Viewer window displays on the right. A Schema view can be toggled on the right and a Status window displays on the bottom.\n\nThe Editor window uses standard EMACS key bindings and allows you to type your Python syntax query. `_` is the loaded JSON from the file presented as a python dict or list of dicts. You can use dot notation or traditional python bracket notation to access key names.\n\nAs you modify your query, the Viewer and Schema windows will update with the latest results. If there are any errors in the query (syntax errors, etc.), they will be displayed in the Status window at the bottom.\n\nTab completions are available for current context list indicies and key names.\n\nUse `CTRL-\\` to toggle the focus between the Editor, Viewer, and Schema windows.\n\nUse `CTRL-S` to toggle the Schema window.\n\nUse `CTRL-Q` or `CTRL-C`to exit.\n\n> Note: Reserved key names that cannot be accessed using dot notation can be accessed via standard python dictionary notation. (e.g. `_.foo[\"get\"]` instead of `_.foo.get`)\n\nHere is an example after running `jellex twitterdata.json` and modifying the query:\n\n\n\nWhen you exit (`CTRL-Q` or `CTRL-C`), you will be presented with your `jello` filter:\n```\n$ jellex twitterdata.json\nYour query:\n\njello '_[0].user'\n\n$\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "TUI Jello Explorer - filter JSON and JSON Lines data with Python syntax.",
"version": "0.5.7",
"project_urls": {
"Homepage": "https://github.com/kellyjonbrazil/jellex"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6a69726740c579f7af19d5185122182d16460225e05e3686002fa2baa2b6748d",
"md5": "ed541ead2042249d9c2d2ba4b3c96e0d",
"sha256": "8951d791a3abb1ba929c3d0de1ad2583316b6fe55045f31f69b5f51cb5b8cefe"
},
"downloads": -1,
"filename": "jellex-0.5.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ed541ead2042249d9c2d2ba4b3c96e0d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 6249,
"upload_time": "2023-10-24T00:29:24",
"upload_time_iso_8601": "2023-10-24T00:29:24.217854Z",
"url": "https://files.pythonhosted.org/packages/6a/69/726740c579f7af19d5185122182d16460225e05e3686002fa2baa2b6748d/jellex-0.5.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bc56a806af14791940c847f334e1407a0874b1860b6cbe05f92ce9e058cc1648",
"md5": "ca9430a0379a1049243979e01b7faee0",
"sha256": "4b98432127d8e98839ead90f8b1e80549474fe230f973b7a86b5a6744e37afbb"
},
"downloads": -1,
"filename": "jellex-0.5.7.tar.gz",
"has_sig": false,
"md5_digest": "ca9430a0379a1049243979e01b7faee0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 6351,
"upload_time": "2023-10-24T00:29:25",
"upload_time_iso_8601": "2023-10-24T00:29:25.459579Z",
"url": "https://files.pythonhosted.org/packages/bc/56/a806af14791940c847f334e1407a0874b1860b6cbe05f92ce9e058cc1648/jellex-0.5.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-24 00:29:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kellyjonbrazil",
"github_project": "jellex",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "jellex"
}