您的位置:首頁/技術文章
文章詳情頁

python - sqlalchemy 批量插入的數據,數據列不相等

瀏覽:84日期:2022-06-28 14:15:57

問題描述

# 初始化數據庫連接:engine = create_engine('xxxxx')# 創建DBSession類型:DBSession = sessionmaker(bind=engine)session = DBSession()# 測試沒有問題的數據rows_ok = [ {'name':'aaa','otherdata':'exist_col_aaa'}, {'name':'bbb','otherdata':'exist_col'},]# 測試出問題的數據rows = [ {'name':'aaa'}, {'name':'bbb','otherdata':'exist_col'},]# User中有name,otherdata字段session.execute(User.__table__.insert(),rows)session.commit()session.close()

如果批量插入數據中所有字典的key一致,則數據能保存

只要List中字典缺失一個key,會導致整個列被忽略

真實的情況列數很多,而且缺失數據也很多.有沒有解決辦法,或者使用其它方法?

或者將

rows = [ {'name':'aaa'}, {'name':'aaa'}, {'name':'aaa'}, {'name':'aaa'}, {'name':'bbb','otherdata':'exist_col',....},]

轉化為

rows = [ {'name':'aaa','otherdata':'',....}, {'name':'aaa','otherdata':'',....}, {'name':'aaa','otherdata':'',....}, {'name':'aaa','otherdata':'',....}, {'name':'bbb','otherdata':'exist_col',....},]

問題解答

回答1:

schema定義的時候, 用nullable=False

用session.add_all

標簽: Python 編程
国产综合久久一区二区三区