根据JSON Schema的属性顺序对JSON或YAML文档进行排序
项目描述
提供JSON工具
-
jschon-sort
根据其JSON Schema对JSON或YAML文档进行排序:对象属性按其在JSON Schema中声明的顺序排序。 -
jschon-remove-additional-props
删除在JSON Schema中未定义的属性。
"jschon"这个名字与它基于jschon库进行JSON Schema处理有关。
动机
根据JSON RFC,对象是一个无序集合。在实践中,在序列化的JSON或YAML文件中,属性的特定顺序可以有益于可读性:例如,{"start": 10, "end": 20}
比简单的字典序{"end": 20, "start": 10}
(由json.dumps(..., sort_keys=True)
产生)更自然。虽然有几个尝试将属性排序引入JSON Schema,但这里我们采用不同的方法。通过利用JSON Schema本身是针对人类维护者编写的这一事实,我们可以从JSON Schema定义的排序中推断出直观的顺序,并将其应用于文档本身。
用法
Shell:
jschon-sort --schema ../schema.json file.yaml
API:
import jschon
import jschon_tools
jschon.create_catalog('2020-12')
...
sorted_doc_data = jschon_tools.process_json_doc(
schema_data=schema_data,
doc_data=doc_data,
sort=True,
)
示例
给定 schema
{
"type": "object",
"properties": {
"range": {
"type": "object",
"properties": {
"start": {"type": "number"},
"end": {"type": "number"}
}
}
}
}
以下 document
{"range": {"end": 20, "start": 10}}
将被重新排序为
{"range": {"start": 20, "end": 10}}
项目详情
关闭
jschon-sort-0.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 00794b5ecf01d15cc37cf1e72d305354ac8107ca6016fe8b7786e4d4055ac7ca |
|
MD5 | 9e57e5821804b54bf7d5add402d6f43b |
|
BLAKE2b-256 | 82b0afff8e9c96afd9135223e7518423f92b244b01c0e27bd658dc36f0611328 |