import csv from datetime import datetime def _convert_cell(v): if isinstance(v, unicode): return v.encode('utf-8') elif isinstance(v, datetime): return v.isoformat() return v def dump_csv(query_iter, fh): writer, columns = None, None for row in query_iter: if writer is None: writer = csv.writer(fh) columns = row.keys() writer.writerow(columns) writer.writerow([_convert_cell(row.get(c)) \ for c in columns]) fh.close()