Skip to content

ylathouris/jsonio

Repository files navigation

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

data = {
  'foo': {
    'bar': {
      'baz': {
        'qux': 'wibble'
      }
    }
  }
}

obj = jsonio.loads(data, dataclass=True)
assert obj.foo.bar.baz.qux == 'wibble'  # 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

About

JSON I/O Helpers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors