CSV dumping option
This commit is contained in:
parent
a569502a9b
commit
36507c35f8
@ -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
24
sqlaload/util.py
Normal 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()
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user