首頁  >  問答  >  主體

python - sqlalchemy 批次插入的資料,資料列不相等

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

全部回覆(1)我來回復

  • 習慣沉默

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

    1. schema定義的時候, 用nullable=False

    2. session.add_all

    回覆
    0
  • 取消回覆