Heim  >  Fragen und Antworten  >  Hauptteil

python – sqlalchemy hat Daten stapelweise eingefügt, Datenspalten sind nicht gleich

# 初始化数据库连接:
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",....},
]
伊谢尔伦伊谢尔伦2683 Tage vor912

Antworte allen(1)Ich werde antworten

  • 習慣沉默

    習慣沉默2017-06-14 10:54:50

    1. schema定义的时候, 用nullable=False

    2. session.add_all

    Antwort
    0
  • StornierenAntwort