Skip to main content

Jsoninja

A library that allows you to generate JSON's from
templates written with Python data types.

Library version

Instalation

$ pip install jsoninja

Use Case Examples

You can use the main Python data types:

import jsoninja

template = {
    "foo": "{{variable_name}}",
}
replacements = {
    "variable_name": "bar",
}
result = jsoninja.replace(template, replacements)

# {
#   "foo": "bar",
# }

Allows multiple replacements of the same variable:

import jsoninja

template = {
    "message1": "{{message}}",
    "message2": "{{message}}",
    "message3": "{{message}}",
}
replacements = {
    "message": "I am duplicated!",
}
result = jsoninja.replace(template, replacements)

# {
#   "message1": "I am duplicated!",
#   "message2": "I am duplicated!",
#   "message3": "I am duplicated!",
# }

Use callback functions to generate the values to be replaced:

import jsoninja


def generate_password() -> str:
    return "super_secret_password"


template = {
    "password": "{{password}}",
}
replacements = {
    "password": generate_password,
}
result = jsoninja.replace(template, replacements)

# {
#   "password": "super_secret_password",
# }

Support for variables in the dict keys (replacements must be str, int, float or bool):

import jsoninja

template = {
    "{{variable_name}}": "bar",
}
replacements = {
    "variable_name": "foo",
}
result = jsoninja.replace(template, replacements)

# {
#   "foo": "bar",
# }

If you want to use a custom variable pattern, you can do that too:

from jsoninja import Jsoninja

# The pattern must include a capturing group for the variable name.
pattern = r"\$\{([a-zA-Z0-9_]+)\}"
jsoninja = Jsoninja(variable_pattern=pattern)

template = {
    "foo": "${variable_name}",
}
replacements = {
    "variable_name": "bar",
}
result = jsoninja.replace(template, replacements)

# {
#   "foo": "bar",
# }

Release files for jsoninja 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsoninja 1.2.0
File Size Uploaded
jsoninja-1.2.0.tar.gz 35.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jsoninja 1.2.0
File Interpreter ABI Platform
jsoninja-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.1 kB

Release files / jsoninja-1.2.0.tar.gz

Download URL jsoninja-1.2.0.tar.gz
Size 35.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d142b85559e013febc0ad546a73cffafdb20db6d3d4d7febf675cd14b43b68d1
BLAKE2b-256 checksum
How to use checksums
dbd67f55aa7a4c586796d38723713ba0c598cf80719ea9328467ef3c5ad9e44a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / jsoninja-1.2.0-py3-none-any.whl

Download URL jsoninja-1.2.0-py3-none-any.whl
Size 5.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ae07026dc1f67f64b7fa255bd5fe58e9fccc0ce0cd2b4c7c33c45dea1afd3df
BLAKE2b-256 checksum
How to use checksums
fbf283440b956109b0b39fd062c7f70eaac188ad41b254cc215f8cadd349e55c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page