Skip to main content

A CLI tool to edit simple JSON and YAML data files

Project description

sde

PyPI version

sde is not sed. It's a structured data editor for CLI.

Why?

Many people asked for a simple JSON in-place editing and jq was the solution:

jq '.address = "abcde"' test.json|sponge test.json

Does this seem readable or elegant to you?

sde is not a substitute for jq or sed.

It allows simple in-place JSON/YAML value changes, for simple data.

Sample JSON

{
   "name":"John",
   "age":31,
   "city":"New York",
   "extra": {
       "gender": null
   }
}

Sample YAML

database:
  user: example
  password: secret

Modify data

sde name Jack data.json
sde extra.gender male data.json
sde database.user john data.yml

It is possible to modify data in arrays, e.g.:

{
    "users": [
        {
            "username": "foo", 
            "enabled": true
        },
        {
            "username": "bar", 
            "enabled": true
        }      
    ],
}

Set the first user's enabled property to false:

sde users.0.enabled false data.json

Installation for CentOS/RHEL 7, 8 or Amazon Linux 2

sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm
sudo yum -y install sde

Installation for other systems

Installing with pip is easiest:

pip install sde

Notes

Quoting is avoided for null, true, false, and numeric values. To ensure that a given value is quoted, use -s (or --string) option:

sde -s key null file.json

If you must edit the file, by ensuring to update only the existing key, use -e (--must-exist) option. The program will exit without adding the key which doesn't exist.

sde -e key val file.json

TODO

Work with stdin

echo $json | sde name Jack

Query simple data

sdg name data.json

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sde-1.1.5.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

sde-1.1.5-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file sde-1.1.5.tar.gz.

File metadata

  • Download URL: sde-1.1.5.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for sde-1.1.5.tar.gz
Algorithm Hash digest
SHA256 5418f6dba7c01f66af95b96d534a16119d2b712d5ddb5022cf9ac6366278fbcd
MD5 8de470c87ef432a106224636812be5b6
BLAKE2b-256 ec857efd94e14c3c3c8c15a72105f7956c7ee360bdf9a3e18abc29622a37ab8d

See more details on using hashes here.

File details

Details for the file sde-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: sde-1.1.5-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for sde-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 dfe9d63219c85d478fe3f5c3d7a99d3d945a3e09980739c095673fa0cf440268
MD5 87cef5efa97a08e4026bc9c0283ed7d0
BLAKE2b-256 d5353eb76d24b6305fcf86d431d19487e3a19d7a1663a4413545b75e584bc372

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page