code: def write_record(fo, datum, schema):
      
      for field in schema['fields']:
          name = field['name']
          if name not in datum and 'default' not in field and \
                  'null' not in field['type']:
              raise ValueError('no value and no default for %s' % name)
          write_data(fo, datum.get(
              name, field.get('default')), field['type'])
docs: A record is encoded by encoding the values of its fields in the order
      that they are declared. In other words, a record is encoded as just the
      concatenation of the encodings of its fields.  Field values are encoded per
      their schema.