跳转到主要内容

RFC 8785(JSON规范化方案)的纯Python实现

项目描述

rfc8785.py

CI PyPI version Packaging status

RFC 8785的纯Python,无依赖实现,也称为JSON规范化方案或JCS。

此实现的行为应与Andrew Rundgren的参考实现相当,以下为添加的约束条件

  1. 此实现不会自动将非str字典键转换为字符串。用户必须显式执行此转换。
  2. 不提供缩进、格式化打印等支持。输出总是最小化编码。
  3. 所有API都产生UTF-8编码的bytes对象或bytes I/O。

安装

python -m pip install rfc8785

使用方法

查看完整的API文档这里

import rfc8785

foo = {
    "key": "value",
    "another-key": 2,
    "a-third": [1, 2, 3, [4], (5, 6, "this works too")],
    "more": [None, True, False],
}

rfc8785.dumps(foo)

产生

b'{"a-third":[1,2,3,[4],[5,6,"this works too"]],"another-key":2,"key":"value","more":[null,true,false]}'

对于直接序列化到I/O输出,请使用rfc8785.dump

import rfc8785

with open("/some/file", mode="wb") as io:
    rfc8785.dump([1, 2, 3, 4], io)

所有API在序列化失败时都会引发rfc8785.CanonicalizationError或其子类。

许可

Apache许可证,版本2.0。

如注,本实现的部分来自Andrew Rundgren的参考实现,该实现也采用Apache许可证,版本2.0。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

rfc8785-0.1.4.tar.gz (14.3 kB 查看散列)

上传时间

构建分布

rfc8785-0.1.4-py3-none-any.whl (9.2 kB 查看散列)

上传时间 Python 3

由以下支持