mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
CSV import now respects NULLability of columns.
Empty strings loaded into NULL columns are changed to NULL instead.
This commit is contained in:
parent
20c9c23f51
commit
ac325b620d
1 changed files with 10 additions and 4 deletions
|
@ -43,14 +43,20 @@ def csvimport(engine_uri, dir='.'):
|
|||
print table_name
|
||||
|
||||
reader = csv.reader(open("%s/%s.csv" % (dir, table_name), 'rb'), lineterminator='\n')
|
||||
columns = [unicode(column) for column in reader.next()]
|
||||
column_names = [unicode(column) for column in reader.next()]
|
||||
|
||||
for csvs in reader:
|
||||
row = table()
|
||||
|
||||
for column, value in zip(columns, csvs):
|
||||
value = value.decode('utf-8')
|
||||
setattr(row, column, value)
|
||||
for column_name, value in zip(column_names, csvs):
|
||||
if table.__table__.c[column_name].nullable and value == '':
|
||||
# Empty string in a nullable column really means NULL
|
||||
value = None
|
||||
else:
|
||||
# Otherwise, unflatten from bytes
|
||||
value = value.decode('utf-8')
|
||||
|
||||
setattr(row, column_name, value)
|
||||
|
||||
session.add(row)
|
||||
|
||||
|
|
Loading…
Reference in a new issue