<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def write_conll(self, fname):
 """ Serializes the dataset in CONLL format to fname """

        if 'label' not in self.fields:
            raise InvalidFieldsException("dataset is not in CONLL format: missing label field")

        def instance_to_conll(inst):
            tab = [v for k, v in inst.items() if k != 'label']
            return '{}\n{}'.format(inst['label'], '\n'.join(['\t'.join(['-' if e is None else str(e) for e in row]) for row in zip(*tab)]))

        with open(fname, 'wb') as f:
            f.write('# {}'.format('\t'.join([k for k in self.fields if k != 'label'])))
            for i, d in enumerate(self):
                f.write('\n{}'.format(instance_to_conll(d)))
                if i != len(self) - 1:
                    f.write('\n')