code: def mutate_label(label):
          
          label_hashed = '_' + hashlib.md5(label.encode('utf-8')).hexdigest()
  
          # if label starts with number, add underscore as first character
          label_mutated = '_' + label if re.match(r'^\d', label) else label
  
          # replace non-alphanumeric characters with underscores
          label_mutated = re.sub(r'[^\w]+', '_', label_mutated)
          if label_mutated != label:
              # add md5 hash to label to avoid possible collisions
              label_mutated += label_hashed
  
          return label_mutated
docs: BigQuery field_name should start with a letter or underscore and contain only
          alphanumeric characters. Labels that start with a number are prefixed with an
          underscore. Any unsupported characters are replaced with underscores and an
          md5 hash is added to the end of the label to avoid possible collisions.
          :param str label: the original label which might include unsupported characters
          :return: String that is supported by the database