跳转到主要内容

JSON流写入器

项目描述

Python Linting status Linux test status https://badge.fury.io/py/jsonstreams.svg Appveyor CI Status Documentation Status

源代码可在 github 上找到。

代码遵循MIT许可证。有关确切条款,请参阅包含的LICENSE文件。

描述

JSONstreams是一个尝试使以流格式编写JSON更容易的包。与核心json模块相比,此包不需要在写入之前构建一个完整的dict和list树,而是提供了一个直接的方法来写入一个JSON文档,而无需预先构建整个数据结构。

JSONstreams认为有两种基本类型,即JSON数组(对应于Python的list)和JSON对象(对应于Python的dict),可以编码json.JSONEncoder可以编码的任何类型,或者可以使用子类来处理其他类型。

接口设计为以上下文管理器为中心。Stream类以及由subarray和subobject方法返回的Array和Object类(分别)可以用作上下文管理器,也可以不使用,但建议使用上下文管理器以确保每个容器都正确关闭。

基本用法

一个简单的例子如下

import jsonstreams

with jsonstreams.Stream(jsonstreams.Type.OBJECT, filename='foo') as s:
    s.write('foo', 'bar')
    with s.subobject('a') as a:
        a.write('foo', 1)
        a.write('bar', 2)
    s.write('bar', 'foo')

写入已关闭的组将引发异常,不应处理此异常,此异常总是编程错误,应予以纠正。

可以写入编码器(默认为json.JSONEncoder)可以编码的任何值,因此无需迭代列表或字典来写入它们。

import jsonstreams

mylist = list(range(10))
mydict = {a: b for a in range(10) for b in 'abcdefghij'}

with jsonstreams.Stream(jsonstreams.Type.OBJECT, filename='foo') as s:
    s.write('list', mylist)
    s.write('dict', mydict)

项目详情


下载文件

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

源代码分发

jsonstreams-0.6.0.tar.gz (33.5 kB 查看哈希值)

上传时间 源代码

构建分发

jsonstreams-0.6.0-py2.py3-none-any.whl (10.6 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持