Skip to main content

A JSON streaming writer

Project description

JSONstreams is a package that attempts to making writing JSON in a streaming format easier. In contrast to the core json module, this package doesn’t require building a complete tree of dicts and lists before writing, instead it provides a straightforward way to to write a JSON document without building the whole data structure ahead of time.

JSONstreams considers there to be two basic types, the JSON array and the JSON object, which correspond to Python’s list and dict respectively, and can encode any types that the json.JSONEncoder can, or can use an subclass to handle additional types.

The interface is designed to be context manger centric. The Stream class, and the Array and Object classes returned by the subarray and subobject methods (respectively), can be used as context managers or not, but use as context managers are recommended to ensure that each container is closed properly.

Basic Usage

A simple use looks like this:

with jsonstreams.Stream('foo', 'object') as s:
    s.write('foo', 'bar')
    with s.subobject('a') as a:
        a.write(1, 'foo')
        a.write(2, 'bar')
    s.write('bar', 'foo')

Writing into a closed group will raise an exception, which should not be handled, this exception is always an error in programming and should be corrected.

It is possible to write any value that the encoder (json.JSONEncoder by default) can encode, so iterating over lists or dictionaries to write them in is unnecessary:

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

with jsonstreams.Stream('foo', 'object') as s:
    s.write('list', mylist)
    s.write('dict', mydict)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for jsonstreams, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size jsonstreams-0.1.1-py2.py3-none-any.whl (6.8 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page