Skip to main content

Json raw data to object

Project description

jsontofu.png

Usage

@dataclass
class Data:
    str_data: str
    int_data: int

@dataclass
class DictData:
    str_data: str
    dict_data: Optional[Dict]

@dataclass
class RecursiveData:
    str_data: str
    dict_data: Data

json_data1 = {
    'str_data': 'test',
    'int_data': 123
}

json_data2 = {,
    'str_data': 'test',
    'dict_data': {'key1': 123, 'key2': 456}
}

json_data3 = {,
    'str_data': 'test',
    'dict_data': {'str_data': 'test', 'int_data': 456}
}

print(jsontofu.decode(json_data1, Data)) # Data(str_data="test", int_data=123)

print(jsontofu.decode(json_data2, DictData)) # DictData(str_data="test", dict_data={'key1': 123, 'key2': 456})

print(jsontofu.decode(json_data3, RecursiveData)) # RecursiveData(str_data="test", Data(str_data="test", int_data=456)

Installation

pip install git+git://github.com/rondou/jsontofu.git

or

pipenv install 'git+ssh://git@github.com/rondou/jsontofu.git#egg=jsontofu'

Development

pipenv install
pipenv install -d
pipenv run "pytest -s"

Coverage

pipenv run 'pytest tests --cov=jsontofu'

Project details


Download files

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

Source Distribution

jsontofu-1.0.0.tar.gz (2.5 kB view hashes)

Uploaded Source

Built Distribution

jsontofu-1.0.0-py3-none-any.whl (2.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page