Source code for exporters.transform.flatson_transform
from exporters.transform.base_transform import BaseTransform
[docs]class FlatsonTransform(BaseTransform):
"""
It flatten a JSON-like dataset into flat CSV-like tables using the
Flatson library, please refer to Flatson
`official documentation
<http://flatson.readthedocs.io/en/latest/readme.html>`_.
- flatson_schema (dict)
Valid Flatson schema
"""
# List of options to set up the transform module
supported_options = {
'flatson_schema': {'type': dict}
}
def __init__(self, *args, **kwargs):
from flatson import Flatson
super(FlatsonTransform, self).__init__(*args, **kwargs)
self.flatson_schema = self.read_option('flatson_schema')
self.flatson = Flatson(self.flatson_schema)
self.logger.info(
'FlatsonTransform has been initiated. Schema: {!r}'.format(
self.flatson_schema))
[docs] def transform_batch(self, batch):
for record in batch:
yield self.flatson.flatten_dict(record)