CSV dumping option

This commit is contained in:
Friedrich Lindenberg 2012-01-30 09:41:31 +01:00
parent a569502a9b
commit 36507c35f8
2 changed files with 25 additions and 0 deletions

View File

@ -6,3 +6,4 @@ from sqlaload.write import add_row, update_row
from sqlaload.write import upsert, update
from sqlaload.query import distinct, resultiter, all, find_one, find
from sqlaload.util import dump_csv

24
sqlaload/util.py Normal file
View File

@ -0,0 +1,24 @@
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()