json流式编写器
jsonstreams的Python项目详细描述
源代码可在github找到。
代码是麻省理工学院授权的。请参阅包含的许可证文件以了解确切的条款。
说明
jsonstreams是一个试图在流中编写json的包。 格式更简单。与核心json模块相比,这个包没有 在写之前需要建立一个完整的目录树,而不是 提供了一种直接的方法来编写json文档,而无需构建 整个数据结构提前。
jsonstreams认为有两种基本类型,json数组和json 对象,分别对应于python的list和dict,并且可以对 json.jsonencoder可以或可以使用子类处理的任何类型 其他类型。
该接口设计为以上下文管理器为中心。stream类,以及 子数组和子对象方法返回的数组和对象类 (分别)可以用作上下文管理器或不用作上下文管理器,但可以用作上下文 建议管理员确保每个容器都已正确关闭。
基本用法
一个简单的例子如下
withjsonstreams.Stream('foo',jsonstreams.Type.object)ass:s.write('foo','bar')withs.subobject('a')asa:a.write(1,'foo')a.write(2,'bar')s.write('bar','foo')
写入已关闭的组将引发异常,该异常不应 处理时,此异常始终是编程中的错误,应该是 更正。
编码器(json.json encoder)可以通过 默认情况下)可以进行编码,因此在列表或字典上迭代以将其写入 不需要:
mylist=list(range(10))mydict={a:bforainrange(10)forbin'abcdefghij'}withjsonstreams.Stream('foo',jsonstreams.Type.object)ass:s.write('list',mylist)s.write('dict',mydict)