SJSON Serializer/Desarializer for Python

SJSON的Python项目详细描述


sjson

sjson是一个读/写简化json的小库,如Bitsquid blog中最初描述的那样。

许可证

sjson是根据双子句bsd license授权的。有关详细信息,请参见LICENSE.txt

sjson格式

sjson与普通json非常相似(事实上,自1.2.0版以来,sjson库也将加载普通json)。它主要减少了一点所需的标记。主要区别是:

  • 每个文件都以一个隐式对象开始。也就是说,空的sjson文件相当于包含{}的json文件。
  • 键值对后的逗号是可选的。
  • 只要密钥是有效的标识符,就不必引用它们。标识符由字母、数字和_组成。
  • ^除了:之外,还允许{}用于键值分离。典型的分隔符是=
  • 允许使用LI> 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允许原始字符串文本。

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

用法

库提供了四种方法,类似于python json模块。这些是:

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

更改日志

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

  • 解析性能得到了显著提高。
  • 现在可以像stream或string那样解析文件。

1.0.4

  • 解析期间跟踪位置。这可能会稍微降低性能,但允许更好的错误消息。
  • 现在输入是面向字节的。

1.0.3

  • 添加对原始字符串文本的支持。它们由[=[]=]分隔,不需要在字符串中转义。

1.0.2

  • 带空格的字符串现在可以正确转义。

1.0.1

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

1.0.0

初始PYPI发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java RunUnuithRead未更新TextView   java如何从第一个匹配的枚举类型获取枚举常量   java jaxws客户端不重用类   java如何在程序内部将布局和文本大小设置为DP?   Java中Tictaoe人工智能的最简单MiniMax算法   安卓中使用PowerMock的java单元测试单例类方法   用于测试的java虚拟手机号码和电子邮件实用程序   SearchTree实现中的java Compiletime错误   java Jenkins artifactoryPublish失败,HTTP响应代码:405。HTTP响应消息:不允许使用方法   java JButton不显示在JFrame中   Java LWJGL新的渲染问题windows   Java中优先级队列实现中获取运行时异常的数据结构   java错误:org。冬眠hql。内部的阿斯特。ErrorCounter第1:45行:意外标记:从表中获取最后一条记录时的描述   java在不同线程中发出截击请求   当具有本机方法的类不在默认包中时,出现UnsatifiedLinkError java异常   java Spring mvc。无法呈现参数   java EasyMock 2.5不适用于多个参数捕获