code: def deserialize(self, data=None):
          
  
          data = []
  
          if self.req.content_type_params.get('header') != 'present':
              abort(exceptions.InvalidRequestHeader(**{
                  'detail': 'When using text/csv your Content-Type '
                            'header MUST have a header=present parameter '
                            '& the payload MUST include a header of fields',
                  'links': 'tools.ietf.org/html/rfc4180#section-3'
              }))
  
          try:
              reader = csv.DictReader(self.req.stream)
  
              self._validate_field_headers(reader)
  
              for row in reader:
                  Parser.run(row, reader)
  
                  row = Normalizer.run(row, reader)
                  row = super(Deserializer, self).deserialize(data)
  
                  data.append(row)
          except csv.Error:
              abort(exceptions.InvalidRequestBody)
  
          return data
docs: Invoke the deserializer
  
          If the payload is a collection (more than 1 records)
          then a list will be returned of normalized dict's.
  
          If the payload is a single item then the normalized
          dict will be returned (not a list)
  
          :return: list or dict