跳转到主要内容

SJSON Python序列化/反序列化库

项目描述

SJSON

SJSON 是一个用于读取/写入简化版JSON的小型库,如最初在 Bitsquid博客 中所述。

许可证

SJSON 在两个条款的BSD许可证下授权。有关详细信息,请参阅 LICENSE.txt

SJSON格式

SJSON与普通JSON非常相似(实际上,自1.2.0版本以来,SJSON库也将加载普通JSON)。它主要减少了所需的标记量。主要区别在于

  • 每个文件都以一个隐式对象开始。也就是说,一个空的SJSON文件等价于一个包含 {} 的JSON文件。
  • 在键值对之后可以使用逗号,这是可选的。
  • 只要它们是有效的标识符,键就不需要引号。一个标识符由字母、数字和 _ 组成。
  • 除了 : 之外,还可以使用 = 来分隔键值。规范分隔符是 =
  • 允许C和C++风格的注释。

此外,此库还提供了对原始字符串字面量的支持。

示例

JSON

{
    "foo" : 23,
    "bar" : [1, 2, 3],
    "baz" : {
        "key" : "value"
    }
}

SJSON

foo = 23
bar = [1, 2, 3]
baz = {
    // SJSON also allows for comments
    key = "value"
}

作为扩展,SJSON 允许使用原始字符串字面量,无论是 Lua 还是 Python 风格。

foo = [=[This is a raw literal with embedded " and stuff]=]

foo = """This is a raw literal with embedded " and stuff"""

用法

该库提供了四个方法,类似于 Python JSON 模块。这些是

  • dump:将对象编码为 SJSON 并写入流。
  • dumps:将对象编码为 SJSON 并返回一个字符串。
  • load:从流中解码 SJSON 编码的对象。
  • loads:从字符串中解码 SJSON 编码的对象。

变更日志

2.1.1

  • 仅包装更改。提高了支持的 Python 版本至 Python 3.12

2.1

  • 添加对 Python 风格的原始字符串的支持,由 """ 分隔。
  • 改进对未知字符串转义的处理。之前,这些会引发异常,现在它们会被传递。

2.0.3

  • 2.0.2 版本的重新发布。

2.0.2

  • 仅包装更改。此版本仅包含包装更改,尚未公开发布,请使用 2.0.3 代替。

2.0.1

  • 除了 dumps 外,还添加了 dump,以与 Python JSON 模块保持一致。
  • 额外的 PEP8 符合性调整。

2.0.0

  • 该库现在符合 PEP8 标准。这应该不会影响大多数使用此库的用户,唯一可见的更改是 ParseException.GetLocation 已重命名为 get_location。核心函数未重命名,且与 API 兼容。

1.2.0

  • 如果键包含特殊字符,则编码时不会正确地引用。
  • 列表元素被错误地缩进。
  • 列表缩进现在接受字符串或数字(类似于 Python JSON 模块)。
  • 现在支持使用冒号 : 和等于号 = 作为键值分隔符,允许 SJSON 库解析纯 JSON 文件。

1.1.1

  • 添加了对 C/C++ 风格注释的支持。
  • 行/列号现在从 1 开始(之前,第一个字符在行 0,列 0)。

1.1.0

  • 解析性能得到了显著提高。
  • 现在可以解析文件流或字符串了。

1.0.4

  • 在解析过程中跟踪位置。这将略微降低性能,但可以提供更好的错误信息。
  • 输入现在是字节导向的。

1.0.3

  • 添加了对原始字符串字面量的支持。这些由 [=[ ]=] 分隔,并且在字符串内部不需要转义。

1.0.2

  • 现在正确转义了包含空白的字符串。

1.0.1

  • 修复了各种字符串编码/解码错误。
  • 编码现在使用 collections.abc 来识别序列和映射,而不是直接针对 listdict 进行测试。

1.0.0

PyPI 的初始发布。

项目详情


下载文件

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

源分布

sjson-2.1.1.tar.gz (10.3 kB 查看哈希值)

上传时间:

构建分布

sjson-2.1.1-py3-none-any.whl (8.1 kB 查看哈希值)

上传于 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面