python - sqlalchemy 批量插入的数据,数据列不相等
伊谢尔伦
伊谢尔伦 2017-06-14 10:52:50
0
1
964
# 初始化数据库连接:
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",....},
]
伊谢尔伦
伊谢尔伦

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

全部回复(1)
習慣沉默
  1. schema定义的时候, 用nullable=False

  2. session.add_all

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板