code: def ConvertValueForCsv(pql_value):
    
    if 'value' in pql_value:
      field = pql_value['value']
    elif 'values' in pql_value:
      field = pql_value['values']
    else:
      field = None
  
    if field:
      if isinstance(field, list):
        return ','.join(['"%s"' % str(ConvertValueForCsv(single_field))
                         for single_field in field])
      else:
        class_type = ad_manager.AdManagerClassType(pql_value)
  
        if class_type == 'TextValue':
          return field.replace('"', '""').encode('UTF8')
        elif class_type == 'NumberValue':
          return float(field) if '.' in field else int(field)
        elif class_type == 'DateTimeValue':
          return ConvertDateTimeToOffset(field)
        elif class_type == 'DateValue':
          return date(int(field['date']['year']),
                      int(field['date']['month']),
                      int(field['date']['day'])).isoformat()
        else:
          return field
    else:
      return '-'
docs: Sanitizes a field value from a Value object to a CSV suitable format.
  
    Args:
      pql_value: dict a dictionary containing the data for a single field of an
                   entity.
  
    Returns:
      str a CSV writer friendly value formatted by Value.Type.