# 初始化数据库连接: 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()
Si les clés de tous les dictionnaires dans les données d'insertion par lots sont cohérentes, les données peuvent être enregistrées
Tant qu'une clé manque dans le dictionnaire dans la Liste, la colonne entière sera ignorée
La situation réelle comporte beaucoup de colonnes et beaucoup de données manquantes. Existe-t-il une solution ou d'autres méthodes ?
ou va
rows = [ {"name":"aaa"}, {"name":"aaa"}, {"name":"aaa"}, {"name":"aaa"}, {"name":"bbb","otherdata":"exist_col",....}, ]
Convertir en
rows = [ {"name":"aaa","otherdata":"",....}, {"name":"aaa","otherdata":"",....}, {"name":"aaa","otherdata":"",....}, {"name":"aaa","otherdata":"",....}, {"name":"bbb","otherdata":"exist_col",....}, ]
Lors de la définition du
schéma, utilisez
nullable=False
Utilisez
session.add_all