def csv_convert_list_vals(val, delimiter=LIST_DELIMITER_CSV, list_brackets='[]'): ''' Convert values for writing (to csv) NOTE: python 2 csv.writer does not support Unicode: all values must be converted to 8-bit bytestrings to write. ''' delimiter = delimiter + ' ' if isinstance(val, (list,tuple)): if list_brackets: return ( list_brackets[0] + delimiter.join([ smart_text(to_simple(x)).encode('utf-8') for x in val]) + list_brackets[1] ) else: return delimiter.join([ smart_text(to_simple(x)).encode('utf-8') for x in val]) elif val != None: if type(val) == bool: if val: return 'TRUE' else: return 'FALSE' else: x = force_text(to_simple(val)) # MUST encode for csv (understands bytes only) y = x.encode('utf-8') return y else: return None
def csv_convert_list_vals(val, delimiter=LIST_DELIMITER_CSV, list_brackets='[]'): ''' Convert values for writing (to csv) NOTE: python 2 csv.writer does not support Unicode: all values must be converted to 8-bit bytestrings to write. ''' delimiter = delimiter + ' ' if isinstance(val, (list, tuple)): if list_brackets: return (list_brackets[0] + delimiter.join( [smart_text(to_simple(x)).encode('utf-8') for x in val]) + list_brackets[1]) else: return delimiter.join( [smart_text(to_simple(x)).encode('utf-8') for x in val]) elif val != None: if type(val) == bool: if val: return 'TRUE' else: return 'FALSE' else: x = force_text(to_simple(val)) # MUST encode for csv (understands bytes only) y = x.encode('utf-8') return y else: return None
def csv_convert(val, delimiter=LIST_DELIMITER_CSV, list_brackets='[]'): delimiter = delimiter + ' ' if isinstance(val, (list,tuple)): if list_brackets: return ( list_brackets[0] + delimiter.join([smart_text(to_simple(x)) for x in val]) + list_brackets[1] ) else: return delimiter.join([smart_text(to_simple(x)) for x in val]) elif val != None: if type(val) == bool: if val: return 'TRUE' else: return 'FALSE' else: return force_text(to_simple(val)) else: return None
def to_sdf(self, data, options=None): data = to_simple(data) if 'objects' in data: data = data['objects'] if len(data) == 0: return data output = cStringIO.StringIO() sdfutils.to_sdf(data, output) return output.getvalue()
def to_sdf(self, data, options=None): data = to_simple(data) if 'objects' in data: data = data['objects'] if len(data) == 0: return data output = cStringIO.StringIO() sdfutils.to_sdf(data,output) return output.getvalue()
def to_csv(self, data, root='objects', options=None): data = to_simple(data) raw_data = cStringIO.StringIO() writer = csv.writer(raw_data) if 'error' in data: for row in dict_to_rows(data['error']): writer.writerow(row) # writer.writerow(['error']) # writer.writerow([data['error']]) # logger.warn(str(('error', data))) return raw_data.getvalue() if 'objects' in data: data = data['objects'] if len(data) == 0: return data if isinstance(data, dict): # usually, this happens when the data is actually an error message; # but also, it could be just one item being returned data = dict_to_rows(data) for item in data: writer.writerow(item) else: i = 0 keys = None for item in data: if i == 0: keys = item.keys() writer.writerow([smart_text(key) for key in keys]) i += 1 writer.writerow([csvutils.csv_convert(val) for val in item.values()]) return raw_data.getvalue()