Skip to main content

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

Project description

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.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

  • 2.9.5 Distinction between empty object and array

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.3.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

jsonurl_py-0.3.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for jsonurl-py-0.3.1.tar.gz
Algorithm Hash digest
SHA256 adaa1d7c1343c41eeb228c67378c21ce5cd45d5d9e665a9e2ea86d7c1fed6d3b
MD5 761671f80be278d3b32ee1aae927012b
BLAKE2b-256 0d68355db34e4425e514d3e55627f23ba6ccdd7d3621e819ce186e0cec9d56a5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jsonurl_py-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ea8757770e1d1fc474b53013eb1355cde6c2693d1d564f594722fb5cd4e62e87
MD5 3d4388f67880a82b7df314e022258d61
BLAKE2b-256 89486539b72243025ab4a443d245d23818310f73b741b70cf6fc395edf7f5aee

See more details on using hashes here.

Supported by

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