我正在进行批量插入,其中某些列可以用空字符串''
表示,我想将该空字符串转换为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
,但这是很多迭代,我想避免这种情况。