Your friendly neighborhood JSON sorter helper
Project description
sansJson
Your friendly neighborhood JSON sorter helper!
This package is meant to rival the native sort_keys option of the json
package. sort_keys only re-orders the keys according to the alphanumeric
priority. This method breaks down when internal components (such as lists)
need to be re-ordered as well. To ensure consistency across the entire JSON
object, as in the event of a hash, a recursive reordering of sortable
components may be necessary. The following situations are covered:
Note:
-
Homogenous: All elements in a specific component are the same data type. (e.g.
{'a': [1,2,3], 'b', [2,3,4], 'c': [3,4,5]}) -
Nonhomogenous: Each element in a specific component may be any of the supported JSON types. (e.g.
{'a': [1, 'z', False], 0: [3,4,5]}) -
The default priority for nonhomogenous types is:
nullbooleannumber (int > float)stringarrayobject
-
Multi-level
dictJSON (homogenous + nonhomogenous) -
arrayJSON (homogenous + nonhomogenous)- All types except python
object
- All types except python
The following cases are not supported:
- python
objects(i.e. classes)
Installation
pip install sansjson
How to use
>>> import sansjson
>>> to_sort = {'a': 0, 'g': [3, 1, 3, 2], 'c': 1, 'f': 2}
>>> sansjson.sort_pyobject(to_sort)
{'a': 0, 'c': 1, 'f': 2, 'g': [1, 2, 3, 3]}
>>> a = '{"z": 1, "a": {"12": true, "ef": ["a", 1, false], "ap": 0}}'
>>> sansjson.sort_json(a)
'{"a": {"12": true, "ap": 0, "ef": [false, 1, "a"]}, "z": 1}'
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sansjson-0.3.0.tar.gz.
File metadata
- Download URL: sansjson-0.3.0.tar.gz
- Upload date:
- Size: 23.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0dbaf53a2b412e474c58e9097819020aec2c572fb973539f10590e322d2dfd7
|
|
| MD5 |
e91d630dce2245a803f574209dd0a882
|
|
| BLAKE2b-256 |
c2e35a5f8e33296514aa7d99706c768bc55a6db25c5b3202d569c010042cc44c
|
File details
Details for the file sansjson-0.3.0-py3-none-any.whl.
File metadata
- Download URL: sansjson-0.3.0-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7acfc6fdbe1a5cb9ccff21ae114ba8c8d3f081e6884a282d014a5ed5af28958
|
|
| MD5 |
e07c638f9fd3e5e7b2c87e7c9ed3ec16
|
|
| BLAKE2b-256 |
eb79b504830bf4208f0e01687217a600870d6728b86068b3c361e2eb1ae4be40
|