python – sqlalchemy hat Daten stapelweise eingefügt, Datenspalten sind nicht gleich
伊谢尔伦
伊谢尔伦 2017-06-14 10:52:50
0
1
958
# 初始化数据库连接:
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()

Wenn die Schlüssel aller Wörterbücher in den Batch-Einfügungsdaten konsistent sind, können die Daten gespeichert werden

Solange ein Schlüssel im Wörterbuch in der Liste fehlt, wird die gesamte Spalte ignoriert

Die reale Situation hat viele Spalten und viele fehlende Daten. Gibt es eine Lösung oder andere Methoden?

oder wird

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

Konvertieren in

rows = [
    {"name":"aaa","otherdata":"",....},
    {"name":"aaa","otherdata":"",....},
    {"name":"aaa","otherdata":"",....},
    {"name":"aaa","otherdata":"",....},
    {"name":"bbb","otherdata":"exist_col",....},
]
伊谢尔伦
伊谢尔伦

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

Antworte allen(1)
習慣沉默
  1. schema定义的时候, 用nullable=False

  2. session.add_all

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage