Lazy JSON Files (xonsh.lazyjson)

Implements a lazy JSON file class that wraps around json data.

class xonsh.lazyjson.LJNode(offsets, sizes, root)[source]

A proxy node for JSON nodes. Acts as both sequence and mapping.

Parameters
offsetsdict, list, or int

offsets of corresponding data structure, in bytes

sizesdict, list, or int

sizes of corresponding data structure, in bytes

rootweakref.proxy of LazyJSON

weakref back to root node, which should be a LazyJSON object.

load(self)[source]

Returns the Python data structure represented by the node.

class xonsh.lazyjson.LazyJSON(f, reopen=True)[source]

Represents a lazy json file. Can be used like a normal Python dict or list.

Parameters
ffile handle or str

JSON file to open.

reopenbool, optional

Whether new file handle should be opened for each load.

close(self)[source]

Close the file handle, if appropriate.

xonsh.lazyjson.dumps(obj, sort_keys=False)[source]

Dumps an object to JSON with an index.

xonsh.lazyjson.index(obj, sort_keys=False)[source]

Creates an index for a JSON file.

xonsh.lazyjson.ljdump(obj, fp, sort_keys=False)[source]

Dumps an object to JSON file.