python - Données insérées par lots sqlalchemy, les colonnes de données ne sont pas égales
伊谢尔伦
伊谢尔伦 2017-06-14 10:52:50
0
1
931
# 初始化数据库连接:
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",....},
]
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(1)
習慣沉默
    Lors de la définition du
  1. schéma, utilisez nullable=False

  2. Utilisez session.add_all

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!