Source code for exporters.deserializers

from exporters.pipeline.base_pipeline_item import BasePipelineItem
from exporters.records.base_record import BaseRecord
import json
import csv

__all__ = ['BaseDeserializer', 'JsonLinesDeserializer', 'CSVDeserializer']


[docs]class BaseDeserializer(BasePipelineItem):
[docs] def deserialize(self, stream): raise NotImplementedError()
[docs]class JsonLinesDeserializer(BaseDeserializer):
[docs] def deserialize(self, stream): for line in stream.iterlines(): yield BaseRecord(json.loads(line))
[docs]class CSVDeserializer(BaseDeserializer):
[docs] def deserialize(self, stream): stream.mode = "lines" reader = csv.DictReader(stream) for item in reader: yield BaseRecord(item)