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.5 Distinction between empty object and array
2.9.6 AQF - Address Bar Query String Friendly
The following optional features are not yet supported:
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
Built Distribution
Hashes for jsonurl_py-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69c733bf1dd95f3c46831f88794a6a2ec47bc34567ff0293991b2063492823aa |
|
MD5 | a2bc08e7a6ae72189e3917a9961c739e |
|
BLAKE2b-256 | 809e039863a27ad26e884df02a1c1a998e92290c860badf9e70c773a9d1d9df7 |