在批量插入期间将空字符串转换为DB Null

时间:2016-03-16 04:33:21

标签: python postgresql sqlalchemy

我正在进行批量插入,其中某些列可以用空字符串''表示,我想将该空字符串转换为Postgresql DB Null值

如果我使用的是psycopg2' copy_from,那么它很简单,我会这样:

copy_from(file_like_object, table, sep='|', null='', size=8192, columns=None)

null=''会自动将空字符串转换为DB Null。

但是,现在正在使用SQlAlchemy。它的insert语句有一个类似的魔术参数来将空字符串转换为Null吗?

通过insert语句我的意思是sqlalchemy core的.insert(),如下例所示

user_table = Table('user_table', metadata, autoload=True, autoload_with=engine)
sql = user_table.insert().values(sql_binder)
conn = engine.connect()
trans = conn.begin()
conn.execute(sql, db_users)
trans.commit()
conn.close()

我知道我可以迭代每个值并检查它是否为空字符串,然后传递Python None,但这是很多迭代,我想避免这种情况。

0 个答案:

没有答案