目前的方法是:
sqlalchemy
+ xlrd
db.session.bulk_insert_mappings()
把数据查出来和 excel 内的数据做对比
-- 但是感觉 2 这样做好蠢,不知道有没有什么更好的方法,有人分享下吗
1
446ENzu91KZ73A33 2019-08-15 10:11:08 +08:00 via Android
导入数据库不是存嘛?把存的结果记录一下,导出到 excel 这样?
|
3
446ENzu91KZ73A33 2019-08-15 11:22:09 +08:00 via Android
@admingyu 你存数据库,save 失败不会报错吗?做个判断?报错把信息记录一下,然后存 excel 里
|
4
admingyu OP @mu666 是写接口,Excel 数据存进数据库,返回 json 数据告诉导入结果, 当 save 失败的时候,并不会把那部分成功的数据保存到数据库,而需求是`成功的保存,失败的返回,并且告知哪几条数据失败了`,如下:
`{ "sys_status": "SUCCESS", "data": { "total": 23, "fail": 1, "fail_sn": [ "Wwtr2vf34gd7e940fg" ] }, "message": "成功" }` |
5
ajun727 2019-08-15 16:53:48 +08:00
用 kettle spoon 水壶工具就可以批量导入吧。。至于成功不成功,我觉得只能通过对比数据库,not exist 来操作吧
|
6
lmingzhi08 2019-08-15 16:59:42 +08:00
我一般先用 pandas 读取 excel 文件,然后再后续处理。
其实是否可以先将 excel 文件转为 csv,txt 之类的文本文件,后续处理会方便一下? 然后导入数据库之前做数据校验,符合格式的导入数据库,不符合格式的导出到错误日志。 |
7
SingeeKing 2019-08-15 19:16:18 +08:00
我想说一句请换成 openpyxl
|
8
admingyu OP |