The jsonio package provides utility functions for reading and writing JSON data. It supports the following features:
- Easy Read/Write
- Works Just Like The
jsonLibrary - Supports
datetime/dateObjects - Supports
dataclasses(Python 3.7+) - Preserve Ordering
pip install jsonio
Read
import jsonio
data = jsonio.read('/foo/bar.json')Write
import jsonio
jsonio.write({'foo': 'bar'}, '/foo/bar.json')Load
import jsonio
with open('/foo/bar.json', 'r') as jsonfile:
data = jsonio.load(jsonfile)Loads
import jsonio
data = jsonio.loads('{"foo": "bar"}')Dump
import jsonio
with open('/foo/bar.json', 'w') as jsonfile:
jsonio.dump({'foo': 'bar'}, jsonfile)Dumps
import jsonio
data = {
'apple': 'crumble',
'banana': 'split',
}
# Use standard options.
text = jsonio.dumps(data, jsonfile, indent=2, sort_keys=True)import datetime
import jsonio
before = {
'date': datetime.date.today(),
'timestamp': datetime.datetime.now(),
}
data = jsonio.dumps(before)
after = jsonio.loads(data)
assert before == after # Truefrom dataclasses import dataclass
import jsonio
data = {
'foo': {
'bar': {
'baz': {
'qux': 'wibble'
}
}
}
}
obj = jsonio.loads(data, dataclass=True)
assert obj.foo.bar.baz.qux == 'wibble' # Trueimport collections
import jsonio
before = collections.OrderedDict([('banana', 'split'), ('apple', 'crumble')])
text = jsonio.dumps(before, indent=2)
after = jsonio.loads(text, ordered=True)
assert before == after # TrueEND