code: def _extract_alternative_fields(self, fields, default=None, field_type=float):
          '''
          Extract a value for a list of ordered fields.
          Return the value of the first existed field in the list
          '''
          for field in fields:
              if field in self.tags:
                  if field_type is float:
                      value = eval_frac(self.tags[field].values[0])
                  if field_type is str:
                      value = str(self.tags[field].values)
                  if field_type is int:
                      value = int(self.tags[field].values[0])
                  return value, field
          return default, Nonf _extract_alternative_fields(self, fields, default=None, field_type=float):
          '''
          Extract a value for a list of ordered fields.
          Return the value of the first existed field in the list
          '''
          for field in fields:
              if field in self.tags:
                  if field_type is float:
                      value = eval_frac(self.tags[field].values[0])
                  if field_type is str:
                      value = str(self.tags[field].values)
                  if field_type is int:
                      value = int(self.tags[field].values[0])
                  return value, field
          return default, None
docs: Extract a value for a list of ordered fields.
          Return the value of the first existed field in the list