Skip to main content

Python implementation of jsonurl, an alternative format for JSON data model

Project description

https://img.shields.io/github/license/cdleonard/jsonurl-py.svg https://img.shields.io/pypi/v/jsonurl-py.svg https://github.com/cdleonard/jsonurl-py/actions/workflows/main.yml/badge.svg https://cdleonard.github.io/jsonurl-py/htmlcov/badge.svg https://img.shields.io/badge/code%20style-black-000000.svg

About

This is a python implementation of jsonurl, an alternative text format which encodes the same data model in a way that is more suitable for use in URLs.

See https://jsonurl.org/ and especially https://github.com/jsonurl/specification/

The following optional features are supported:

  • 2.9.1 Implied Arrays

  • 2.9.2 Implied Objects

  • 2.9.5 Distinction between empty object and array

  • 2.9.6 AQF - Address Bar Query String Friendly

The following optional features are not yet supported:

  • 2.9.3 WFU - x-www-form-urlencoded Arrays and Objects

  • 2.9.4 Implied Object Missing Values

Installation

pip install jsonurl-py

The package name is jsonurl_py to avoid confusion with an unrelated jsonurl package on pypi which implements an unrelated syntax. In theory you can install and import both packages without having them interfere with each other.

The project name uses a dash in the name for consistency with the existing jsonurl-js and jsonurl-java implementations.

Usage

import jsonurl_py as jsonurl

assert jsonurl.loads('(a:1,b:c)') == {'a': 1, 'b': 'c'}
assert jsonurl.dumps(dict(a=[1,2])) == '(a:(1,2))'

Command Line Interface

The package includes a command line interface for converting between jsonurl and standard json:

$ echo "(a:b)" | jsonurl-py load
{"a": "b"}
$ echo '{"a":"b"}' | jsonurl-py dump
(a:b)

It is also possible to run the executable directly via pipx:

$ echo '(a:b)' | pipx run jsonurl-py load
{"a": "b"}

Documentation

Published on github pages.

Can be built locally using tox -e docs

Testing

Tests run via github actions.

Code coverage for main branch is published on github pages.

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

jsonurl-py-0.4.0.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

jsonurl_py-0.4.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file jsonurl-py-0.4.0.tar.gz.

File metadata

  • Download URL: jsonurl-py-0.4.0.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.27.1

File hashes

Hashes for jsonurl-py-0.4.0.tar.gz
Algorithm Hash digest
SHA256 1f78cf7c74a0aa8a71fefa1727b27d1b733466068985d1cc07f46b1240077a74
MD5 d0c5de206dab2cfdbc7f385636e31ed5
BLAKE2b-256 9c464cfd51cbc21608141375395c66320242152abbe829e1bec902b75f39c065

See more details on using hashes here.

File details

Details for the file jsonurl_py-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: jsonurl_py-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.27.1

File hashes

Hashes for jsonurl_py-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 69c733bf1dd95f3c46831f88794a6a2ec47bc34567ff0293991b2063492823aa
MD5 a2bc08e7a6ae72189e3917a9961c739e
BLAKE2b-256 809e039863a27ad26e884df02a1c1a998e92290c860badf9e70c773a9d1d9df7

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