# 💥py-jsoneditor💥
Quickly View and Edit any JSON data.
# Why?
When working with JSON data, You often need to get a structured view of the JSON in order to be able to work with it. There's an online tool [https://jsoneditoronline.org/](https://jsoneditoronline.org/) which I used for this, but copying/pasting all the time got frustrating pretty quickly, This is why I created this package which you can launch right from Python or from the command line.
# Screenshot
![](https://res.cloudinary.com/dermasmid/image/upload/v1624745064/Screenshot_from_2021-06-27_01-02-58_qymcrb.png)
# Installation
```bash
pip install jsoneditor
```
# Python example
In python you can simply import `jsoneditor` and call the `editjson` function, the first argument is going to be the data. See [Formats you can pass the JSON as](#formats-you-can-pass-the-json-as) for all the formats you can pass the JSON in. See [Python api](#python-api) for a full list of addtional arguments that you can pass to `editjson`.
```python
import requests
import jsoneditor
data = requests.get('https://jsonplaceholder.typicode.com/comments').json()
jsoneditor.editjson(data)
```
# Command line example
From the command line you can either pass the data as an argument as so:
```bash
jsoneditor '{"Hey": "Hi"}'
```
Or you can pipe it in like so:
```bash
curl https://jsonplaceholder.typicode.com/comments | jsoneditor
```
Or you can use what you have in your clipboard like so:
```bash
jsoneditor -c
```
See [Formats you can pass the JSON as](#formats-you-can-pass-the-json-as) for all the formats you can pass the JSON in.
Refer to [CLI options](#cli-options) for a list of all cli options. Alternatively you can run `jsoneditor --help` from your terminal to see it.
## <a></a>Formats you can pass the JSON as
You can pass the json in any of the following formats:
* as valid json string. Example: `{"Hey": "Hi"}`
* as a python dict. Example: `{'Hey': 'hi'}`
* as a url the points to valid json. Example: `https://jsonplaceholder.typicode.com/comments`
* as a file path that is valid json. Example: `data.json`
## <a></a>Python Api
| parameter | type | optional |description |
| --------- | ------- | -------- |-----------------------------------------------------------------------------|
| `data` | `Any` | ❌ | The data in any of [these](#formats-you-can-pass-the-json-as) formats. |
| `callback`| `callable`| ✔️ | If you provide this argument you will have a ✅ button which will trigger this callback.|
| `options` | `dict` | ✔️ | Options to pass the the jsoneditor object. See [here](https://github.com/josdejong/jsoneditor/blob/master/docs/api.md#configuration-options)|
| `additional_js`| `str`| ✔️ | You can pass some JavaScript to run on the client side. You can interact with the editor by accessing the `window.editor` variable.|
| `keep_running`| `bool` | ✔️ | Whether to keep the server running. Defaults to `False`. |
| `run_in_thread`| `bool` | ✔️ | Whether to run the server in a separate thread. Defaults to `False`. |
| `is_csv`| `bool` | ✔️ | Whether the data is csv data. Defaults to `False`. |
| `is_yaml`| `bool` | ✔️ | Whether the data is yaml data. Defaults to `False`. |
| `is_ndjson`| `bool` | ✔️ | Whether the data is Newline Delimited JSON . Defaults to `False`. |
| `is_js_object`| `bool` | ✔️ | Whether the data is a JavaScript Object. Defaults to `False`. |
| `title`| `str` | ✔️ | A title to display in the browser. |
| `port`| `int` | ✔️ | specify which port to use. |
## <a></a>CLI options
| parameter | description |
| --------- | ----------------------------------------------------------------------|
| `data` | The data in any of [these](#formats-you-can-pass-the-json-as) formats |
| `-o` | Add a button that will output the json back to the console |
| `-b` | Keep running in background |
| `-c` | Get JSON input from clipboard |
| `-k` | Keep alive |
| `-e` | Edit mode |
| `-n` | Don't launch browser |
| `-p` | Server port |
| `--out` | File to output when in edit mode |
| `-t` | Title to display in browser window |
| `--csv` | Input is CSV |
| `--yaml` | Input is YAML |
| `--js` | Input is a JavaScript Object |
| `--ndjson`| Input is Newline Delimited JSON |
## Build
```bash
python setup.py sdist
```
# Acknowledgements
* [jsoneditor](https://github.com/josdejong/jsoneditor)
Raw data
{
"_id": null,
"home_page": "https://github.com/dermasmid/py-jsoneditor",
"name": "jsoneditor",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "python3 json jsoneditor api gui editor csv",
"author": "Cheskel Twersky",
"author_email": "twerskycheskel@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/80/75/121a6da293cd63ae4ae4d4b38a836d020df5d987959bb946e16060deae18/jsoneditor-1.6.0.tar.gz",
"platform": null,
"description": "# \ud83d\udca5py-jsoneditor\ud83d\udca5\nQuickly View and Edit any JSON data.\n\n\n# Why?\n\nWhen working with JSON data, You often need to get a structured view of the JSON in order to be able to work with it. There's an online tool [https://jsoneditoronline.org/](https://jsoneditoronline.org/) which I used for this, but copying/pasting all the time got frustrating pretty quickly, This is why I created this package which you can launch right from Python or from the command line.\n\n\n# Screenshot\n\n![](https://res.cloudinary.com/dermasmid/image/upload/v1624745064/Screenshot_from_2021-06-27_01-02-58_qymcrb.png)\n\n\n# Installation\n\n```bash\npip install jsoneditor\n```\n\n\n# Python example\n\nIn python you can simply import `jsoneditor` and call the `editjson` function, the first argument is going to be the data. See [Formats you can pass the JSON as](#formats-you-can-pass-the-json-as) for all the formats you can pass the JSON in. See [Python api](#python-api) for a full list of addtional arguments that you can pass to `editjson`.\n```python\nimport requests\nimport jsoneditor\n\ndata = requests.get('https://jsonplaceholder.typicode.com/comments').json()\njsoneditor.editjson(data)\n```\n\n\n# Command line example\n\nFrom the command line you can either pass the data as an argument as so:\n```bash\njsoneditor '{\"Hey\": \"Hi\"}'\n```\nOr you can pipe it in like so:\n```bash\ncurl https://jsonplaceholder.typicode.com/comments | jsoneditor\n```\nOr you can use what you have in your clipboard like so:\n```bash\njsoneditor -c\n```\nSee [Formats you can pass the JSON as](#formats-you-can-pass-the-json-as) for all the formats you can pass the JSON in.\n\nRefer to [CLI options](#cli-options) for a list of all cli options. Alternatively you can run `jsoneditor --help` from your terminal to see it.\n\n\n## <a></a>Formats you can pass the JSON as\n\nYou can pass the json in any of the following formats:\n* as valid json string. Example: `{\"Hey\": \"Hi\"}`\n* as a python dict. Example: `{'Hey': 'hi'}`\n* as a url the points to valid json. Example: `https://jsonplaceholder.typicode.com/comments`\n* as a file path that is valid json. Example: `data.json`\n\n\n## <a></a>Python Api\n\n| parameter | type | optional |description |\n| --------- | ------- | -------- |-----------------------------------------------------------------------------|\n| `data` | `Any` | \u274c | The data in any of [these](#formats-you-can-pass-the-json-as) formats. |\n| `callback`| `callable`| \u2714\ufe0f | If you provide this argument you will have a \u2705 button which will trigger this callback.|\n| `options` | `dict` | \u2714\ufe0f | Options to pass the the jsoneditor object. See [here](https://github.com/josdejong/jsoneditor/blob/master/docs/api.md#configuration-options)|\n| `additional_js`| `str`| \u2714\ufe0f | You can pass some JavaScript to run on the client side. You can interact with the editor by accessing the `window.editor` variable.|\n| `keep_running`| `bool` | \u2714\ufe0f | Whether to keep the server running. Defaults to `False`. |\n| `run_in_thread`| `bool` | \u2714\ufe0f | Whether to run the server in a separate thread. Defaults to `False`. |\n| `is_csv`| `bool` | \u2714\ufe0f | Whether the data is csv data. Defaults to `False`. |\n| `is_yaml`| `bool` | \u2714\ufe0f | Whether the data is yaml data. Defaults to `False`. |\n| `is_ndjson`| `bool` | \u2714\ufe0f | Whether the data is Newline Delimited JSON . Defaults to `False`. |\n| `is_js_object`| `bool` | \u2714\ufe0f | Whether the data is a JavaScript Object. Defaults to `False`. |\n| `title`| `str` | \u2714\ufe0f | A title to display in the browser. |\n| `port`| `int` | \u2714\ufe0f | specify which port to use. |\n\n\n## <a></a>CLI options\n\n| parameter | description |\n| --------- | ----------------------------------------------------------------------|\n| `data` | The data in any of [these](#formats-you-can-pass-the-json-as) formats |\n| `-o` | Add a button that will output the json back to the console |\n| `-b` | Keep running in background |\n| `-c` | Get JSON input from clipboard |\n| `-k` | Keep alive |\n| `-e` | Edit mode |\n| `-n` | Don't launch browser |\n| `-p` | Server port |\n| `--out` | File to output when in edit mode |\n| `-t` | Title to display in browser window |\n| `--csv` | Input is CSV |\n| `--yaml` | Input is YAML |\n| `--js` | Input is a JavaScript Object |\n| `--ndjson`| Input is Newline Delimited JSON |\n\n\n## Build\n\n```bash\npython setup.py sdist\n```\n\n# Acknowledgements\n\n* [jsoneditor](https://github.com/josdejong/jsoneditor)\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Visualize and edit JSON",
"version": "1.6.0",
"project_urls": {
"Homepage": "https://github.com/dermasmid/py-jsoneditor"
},
"split_keywords": [
"python3",
"json",
"jsoneditor",
"api",
"gui",
"editor",
"csv"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8075121a6da293cd63ae4ae4d4b38a836d020df5d987959bb946e16060deae18",
"md5": "bedf12aa882e9ca698357a7707f84593",
"sha256": "4b73b5064d2dda7d660567a02e75c495b8990318e46f14677c488ceeeb5571e1"
},
"downloads": -1,
"filename": "jsoneditor-1.6.0.tar.gz",
"has_sig": false,
"md5_digest": "bedf12aa882e9ca698357a7707f84593",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 259564,
"upload_time": "2023-06-19T19:29:32",
"upload_time_iso_8601": "2023-06-19T19:29:32.928854Z",
"url": "https://files.pythonhosted.org/packages/80/75/121a6da293cd63ae4ae4d4b38a836d020df5d987959bb946e16060deae18/jsoneditor-1.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-19 19:29:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dermasmid",
"github_project": "py-jsoneditor",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "jsoneditor"
}