gpt4 book ai didi

python - 如何使用 executemany 处理异常(MySQL 和 Python)

转载 作者:行者123 更新时间:2023-11-30 21:36:41 30 4
gpt4 key购买 nike

我有一个 python 脚本,它使用 executemany 将行批量插入到 MySQL 表中。数据是从不同的 API 检索的,因此时不时会有意外数据导致一行导致异常。

如果我理解正确 - 当调用包含 1,000 行的 executemany 并且其中一个有问题时 - 不会插入整个 block 。

我想想办法提交1000条记录,成功加载没问题的。因此,例如 - 如果一千个中的一个有问题,它将不会被加载,但所有其他 999 个将被加载。

这方面的最佳做法是什么?我正在考虑捕获异常并创建回退以逐一重新提交所有 1000 个 - 但似乎必须有更好的方法来实现相同的结果。

建议?

最佳答案

在“executemany”查询的开头执行“INSERT OR IGNORE”语句将让您完全做到这一点 - 它只会添加不会带来错误的值。

唯一的缺点是您无法再看到发生了什么错误。例如,

原始数据库:

('kaushik', 3)
('maria', 4)
('shreya', 38)

查询:(在 python 中)

listofnames = [
('kaushik', 3),
('maria', 4),
('jane', 56)
]

c.executemany("INSERT OR IGNORE INTO bob (name, number) VALUES (?,?)",
listofnames)

最终分贝:

('kaushik', 3)
('maria', 4)
('shreya', 38)
('jane', 56)

关于python - 如何使用 executemany 处理异常(MySQL 和 Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53604439/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com