jsonio

JSON Helpers


Keywords
jsonio, json, utils
License
MIT
Install
pip install jsonio==0.1.3

Documentation

CircleCI Coverage


jsonio

The jsonio package provides utility functions for reading and writing JSON data. It supports the following features:


Installation

pip install jsonio

Easy Read/Write

Read

import jsonio

data = jsonio.read('/foo/bar.json')

Write

import jsonio

jsonio.write({'foo': 'bar'}, '/foo/bar.json')

Works Just Like The json Library

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)

Supports date/datetime Objects

import datetime
import jsonio

before = {
    'date': datetime.date.today(),
    'timestamp': datetime.datetime.now(),
}

data = jsonio.dumps(before)
after = jsonio.loads(data)
assert before == after  # True

Supports dataclasses (Python 3.7+)

from dataclasses import dataclass
import jsonio


@dataclass
class Fruit:
    apple: str
    banana: str


before = Fruit(apple='Fuji', banana='Lady Finger')

data = jsonio.dumps(before)
after = jsonio.loads(data)
assert before == after  # True

Preserve Ordering - i.e. OrderedDict Objects

import 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  # True

END