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第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener