def _get_serialized_fields(self, item, default_value=None, include_empty=None):
        if include_empty is None:
            include_empty = self.export_empty_fields
        if self.fields_to_export is None:
            if include_empty and not isinstance(item, dict):
                field_iter = six.iterkeys(item.fields)
            else:
                field_iter = six.iterkeys(item)
        else:
            if include_empty:
                field_iter = self.fields_to_export
            else:
                field_iter = (x for x in self.fields_to_export if x in item)

        for field_name in field_iter:
            if field_name in item:
                field = {} if isinstance(item, dict) else item.fields[field_name]
                value = self.serialize_field(field, field_name, item[field_name])
            else:
                value = default_value

            yield field_name, value
Add storage implementation to hackathon factory
dataset/ETHPy150Open scrapy/scrapy/scrapy/exporters.py/BaseItemExporter._get_serialized_fields--crossover with--dataset/ETHPy150Open msopentechcn/open-hackathon/open-hackathon-server/src/hackathon/__init__.py/init_hackathon_storage